这是example1的输入:
a
b
输出:
a
b
这是example2的输入:
a
b
输出:
a
b
但是,有一个巨大的文件。我尝试过:sed 's/\n\n/\n/g' file
amd cat file | tr '\n' '\t' | sed 's/\t\t/\t/g' | tr '\t' '\n'
答案 0 :(得分:2)
也可以使用sed
sed '/^$/N;/^\n$/ s/\n//' <your_filename>
将读取下一个(空的)行进入模式空间,如果它也是空的,则删除\ n
答案 1 :(得分:1)
如果您特别希望将两个\n\n
替换为一个\n
,只需将RS
设置为gawk
即可:
gawk 'BEGIN{RS="\n\n"} 1' file
如果您希望将\n
替换为任何数字,只需将\n
设置为awk
段落模式:
awk 'BEGIN{RS="" } 1'
答案 2 :(得分:0)
sed一次读取1 \n
- 终止的行,因此您无法执行s/\n\n/anything
,因为缓冲区中永远不会有任何\n
。
只需使用awk:
awk -v RS= '1' file
以上将用一个空行替换所有空行序列。如果那不是您需要的,那么请更新您的示例。