Как я могу разбить строку на 2 по словам / символам? (Bash) (регулярное выражение)

Я хотел бы преобразовать:

Hello Hello Hi Hello Hello Hi Hi Hi Hi Hello

в:

Hello Hello Hi Hello
Hello Hi Hi Hi Hi Hello

Я хочу разбить одну строку на 2, имея , чтобы они имели наименьшее количество символы, насколько это возможно, без обрезания слова.

Я думаю, что, вероятно, я могу сделать это с помощью wc -w, wc -c, cut и / или awk, но, возможно, вы, ребята, можете предложить несколько лучших идей!

0
задан 1 April 2015 в 00:16

1 ответ

Вы не дали намного больше информации, таким образом, я предполагаю, что у Вас есть своя строка в переменной, названной YOUR_STRING. Это может легко быть адаптировано для обработки файлов и этажерки.

Первый определяют половину длины Вашей строки и добавляют 1 (иначе, Вы заканчиваете с 3 строками а не 2):

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

Затем, используют эти fold команда для обертывания текста:

echo $YOUR_STRING | fold -sw $CHARS

Результат:

Hello Hello Hi Hello 
Hello Hi Hi Hi Hi Hello

См. man fold для получения дополнительной информации.

3
ответ дан 1 April 2015 в 00:16

Другие вопросы по тегам:

Похожие вопросы: