2015-12-11 3 views
1

У меня есть фраза в одном поле в файле, которое мне нужно разбить на части из 30 символов (включая буквы, цифры и пробелы).Разделить текст на равные части

Напр .: "

This text is to show an example of what im looking for, to break the text into parts containing maximum 30 characters." 

мне нужен следующий результат:?

This text is to show an exampl|e of what im looking for, to b|reak the text into parts conta|ining maximum 30 characters. 

Может кто-то момент мне направление

+0

Не совсем уверен, что вы просите. Вы хотите, чтобы одна строка из 30-символьных частей разделялась символами pipe (|), как в вашем примере? Вероятно, это работа для 'sed' и/или' awk'. –

+3

'sed 's /. \ {30 \}/& |/g' file'? – 123

+0

Да, Lotharyx, понадобится одна строка из 30-символьных фрагментов, разделенных символами pipe (|), как в моем примере. Sed или awk в порядке. Попробуй этот код и вернешься. Спасибо – ebvogt

ответ

2

Это работа для fold

$ fold -w30 longline | tr '\n' '|' | sed 's/|$/\n/' 

Этот текст должен показать пример того, что им требуется, чтобы b | записать текст в детали, содержащие не более 30 символов.

sed является удаление последнего «|», заметим, что «\ п» замена не поддерживается во всех sed с. Если у вас есть лихорадка, чем 20 сегментов вы можете сделать то же самое с

$ fold -w30 longline | pr -20ts'|' 

Также с -s опции вы можете установить точки останова в пространствах, может быть лучше для потребления человеком

$ fold -w30 -s longline 

This text is to show an 
example of what im looking 
for, to break the text into 
parts containing maximum 30 
characters. 

против

$ fold -w30 longline 

This text is to show an exampl 
e of what im looking for, to b 
reak the text into parts conta 
ining maximum 30 characters. 
+0

'fold' не получает достаточно хорошего пресса. Это хороший пример выбора правильного инструмента для работы. Альтернатива bash для c-style для инкремента цикла 30 в сочетании со строковыми индексами - это решение round-peg-in-a-square-hole по сравнению (и не так гибко) –

Смежные вопросы