Alb*_*lby 3 regex unix perl command-line multiline
我有以下格式的文件:
(类型1数据:1)
B
B
(类型1数据:2)
B
B
B
(类型1数据:3)
B
..
现在我想重新格式化这个文件,使它看起来像:
(类型1数据:1)BB
(类型1数据:2)BBB
(类型1数据:3)B
...
我的方法是在命令行中使用perl regex,
cat file | perl -pe 's/\n(B)/ $1/smg'
Run Code Online (Sandbox Code Playgroud)
我的理由是用空格替换新的线条字符.但它似乎没有用.你能帮我么?谢谢
-p一次读取一行,因此在"\n"之后没有任何内容可以匹配.
perl -pe 'chomp; $_ = ($_ =~ /Type/) ? "\n".$_ : " ".$_'
Run Code Online (Sandbox Code Playgroud)
这几乎可以满足您的需求,但在开头添加一个额外的换行符并丢失最终的换行符.