我需要在shell中重新格式化文件,所以我只留下新行'在一些模式之前。例如:
输入:
Europe First
Asia Second
Africa Third
Australia Fourth
Europe Sixth
Australia Seventh
Europe Eight
America Last
输出:
Europe FirstAsia SecondAfrica ThirdAustralia Fourth
Europe SixthAustralia Seventh
Europe EightAmerica Last
模式是"欧洲"
答案 0 :(得分:1)
perl -i -0777pe's/\n(?!Europe|\z)/ /g' file
答案 1 :(得分:0)
只需chomp
每一行print
,如果它以模式开头,则在其前面添加一个新行
perl -ne 'chomp; print "\n" if /^Europe/; print' myfile
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed ':a;$!N;/\nEurope/!s/\n//;ta;P;D' file