2015-12-11 171 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行字符的行嗎?這可能是'sed'和/或'awk'的一個工作。 –

+3

'sed's /。\ {30 \} /&|/g'文件'? – 123

+0

是的Lotharyx,需要一個由管道(|)字符分隔的30個字符的單個行,如我的示例中所示。 Sed或awk都很好。將嘗試你的這個代碼並回來。謝謝 – ebvogt

回答

2

這是fold

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

這段文字是爲了顯示我在尋找什麼樣的例子,以便將文本浸入包含最多30個字符的部分。

sed是要刪除的最後一個「|」,請注意,「\ n」換人並不是在所有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. 

VS

$ 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'沒有得到足夠好的新聞。這是爲工作選擇正確工具的一個很好的例子。 c樣式for循環遞增30與字符串索引結合使用的bash替代方法是通過比較(並且幾乎沒有靈活性)的圓孔方法, –