美好的一天,
我想知道如何用相同模式之间的空格替换所有\n
:
PATTERN
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM \n
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM \n
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM \n
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM \n
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM \n
PATTERN
获取:
PATTERN
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM ..................
PATTERN
到目前为止,我已完成sed -e '/PATTERN/s/\n/ /g'
非常感谢任何线索
答案 0 :(得分:2)
使用awk
:
$ awk '/PATTERN/{if(f){print ""};print;f=f?0:1;next}f{printf "%s ", $0}' file
$ cat file
PATTERN
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
PATTERN
$ awk '/PATTERN/{if(f){print ""};print;f=f?0:1;next}f{printf "%s ", $0}' file
PATTERN
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
PATTERN
使用gnu-sed
:
$ sed '/PATTERN/b;:a;N;/PATTERN/b;s/\n/ /;ba' file
PATTERN
LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM LIPSUM
PATTERN