Como posso dividir uma linha em 2 por palavras / caracteres? (Bate-Papo) (Regex)

0

Gostaria de converter:

Hello Hello Hi Hello Hello Hi Hi Hi Hi Hello

Para:

Hello Hello Hi Hello
Hello Hi Hi Hi Hi Hello

Eu quero dividir uma única linha em 2, por fazendo com que eles tenham a quantidade de caracteres mais próxima possível, sem cortar uma palavra.

Eu acho que provavelmente posso fazer isso com wc -w, wc -c, cut e / ou awk, mas talvez vocês possam fornecer algumas ideias melhores!

    
por TuxForLife 31.03.2015 / 23:16

1 resposta

3

Você não deu muito mais informações, então estou assumindo que você tenha sua string em uma variável chamada YOUR_STRING . Isso pode ser facilmente adaptado para processar arquivos e outros enfeites.

Primeiro, determine metade do comprimento da sua string e adicione 1 (caso contrário, você terá 3 linhas e não 2):

CHARS=$(('echo $YOUR_STRING | wc -c' /2 + 1))

Em seguida, use o comando fold para agrupar seu texto:

echo $YOUR_STRING | fold -sw $CHARS

Resultado:

Hello Hello Hi Hello 
Hello Hi Hi Hi Hi Hello

Veja man fold para mais informações.

    
por roadmr 31.03.2015 / 23:36