我的输入行:
Movies: Action
Adventure
Biography
Comedy
Books:
Biography
Romance
Sci-Fi
War
我的问题(在Perl中实现):检查一行是什么样的,以及它是否以"结束:"追加下一行。
在我的例子中,它加入了包含" Books:"到包含"传记"的行,但这只是一个例子 - 行的内容可能在很多方面有所不同。
Movies: Action
Adventure
Biography
Comedy
Books: Biography
Romance
Sci-Fi
War
答案 0 :(得分:0)
你可以这样做:
perl -pe 's/\r?\n$/ / if(/:\s*$/)' file
或
perl -pe 'chomp if(/:\s*$/)' file
如果你可以在:
后没有空格。
答案 1 :(得分:0)
这是一个可以处理输入的小程序:
while (<>) {
s/\s+$/ / if /:$/;
print;
}
由于结构正是-p
选项提供的结构,因此您可以在shell中的一行中执行此操作:
perl -pe 's/\s*/ / if /:$/' text_file
答案 2 :(得分:0)
像$text =~ s/:\s*\n/: /msg;
答案 3 :(得分:0)
可以使用后视断言:
s/(?<=:)\s*\n/ /gs;