Я хотел бы преобразовать:
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, но, возможно, вы, ребята, можете предложить несколько лучших идей!
Вы не дали намного больше информации, таким образом, я предполагаю, что у Вас есть своя строка в переменной, названной 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
для получения дополнительной информации.