使用perl追加行

时间:2011-12-10 12:31:12

标签: perl

我的输入行:

Movies: Action
Adventure
Biography
Comedy
Books:
Biography
Romance
Sci-Fi
War

我的问题(在Perl中实现):检查一行是什么样的,以及它是否以"结束:"追加下一行。

在我的例子中,它加入了包含" Books:"到包含"传记"的行,但这只是一个例子 - 行的内容可能在很多方面有所不同。

Movies: Action
Adventure
Biography
Comedy
Books: Biography
Romance
Sci-Fi
War

4 个答案:

答案 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;