命令行:在'x'字符后加上空格创建换行符

时间:2012-05-01 22:58:36

标签: regex text command

我正在创建不同长度的文本的测试样本,其中每个样本由换行符分隔。目前我有3mb +文本文件,没有换行符,只有空格。我希望得到正确的reg表达方面的帮助,以确保没有换行符可以减少一半。

非常使用reg表达式的新手。但我认为,对于300字符长度的行,它将在以下的球场:

/.{300,}\s+/&\n/g

(道歉,我知道这不起作用!)


注意:我知道有关于此主题的类似帖子,但我相对确定没有任何内容专门解决此问题。


更新:解决了!使用此命令:perl -lpe's/\b(.{80,300})\b/\1\n/g' file

1 个答案:

答案 0 :(得分:0)

您确定数据中已有新行吗? (如果有,.点字符将与它们不匹配)如果没有换行符,那么这样简单的东西可能会起作用:

s/\s(.{80,300})\s/$1\n/g

80下限只是一个任意选择,如果没有换行符,则很少会影响结果。如果你想要更短的线条,你可以减少300。

修改:将\b更改为\s,这可能是避免非字字符意外换行的更好选择,正如@tchrist所指出的那样。另外,OP没有说他需要Perl反向引用,所以tchrist将\1更改为$1,这对Perl更有意义。