在匹配的行perl之后直接将“退格”应用于该行

时间:2016-08-31 22:57:01

标签: perl

我想重新格式化一个文本文件,使得匹配字符串后面的行被剪切并附加到具有匹配字符串的行。这是一个示例文本:

Answer:
renice

X.
find / -name filename &
Y.
find / -name filename
Z.
bg find / -name filename

我正在寻找最终结果:

Answer: renice

X. find / -name filename &
Y. find / -name filename
Z. bg find / -name filenames

我无法得到以下正确的修剪建议:

$str =~ s/\s+$//;

要生成我需要内联的结果。空间消失了,但我需要的字符串仍然在下面。要剪切和粘贴的线条直接出现在“答案:”“X”旁边。 “Y”。或“Z.”

1 个答案:

答案 0 :(得分:0)

看到你的完整解决方案会有所帮助,但这里有一个可以做你喜欢的单行:

perl -pe's/\s*$/ / if /^.+?[:.]/' 

这将使用单个空格替换字符串末尾的任何空格(包括换行符),但仅限于模式匹配时。该模式在行的开头查找一些字符,后跟句点或冒号。添加-i.bak以就地修改文件。希望这有帮助!