2015-12-11 178 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替代方法是通过比较(并且几乎没有灵活性)的圆孔方法, –