我正在学习使用 sed 并且有一个假设需求:
bash$ cat states
California
Massachusetts
Arizona
Wisconsin
我想要输出:(基本上我只想要中间的一个空行)
California
Massachusetts
Arizona
Wisconsin
请建议使用 sed 的方法。 是否应该使用多行模式空间等概念?
谢谢,
猎豹
作为对其中一条评论的回应,好的,我运行了一些测试脚本,我错误地假设地址空间选择标准只应用一次。它似乎一次又一次地被激活。
bash$ cat file
a
b
c
a
b
c
bash$ sed -e '/a/,/b/s/$/x/g' file
ax
bx
c
ax
bx
c
我的印象是它会产生:
ax
bx
c
a
b
c
有人可以解释 sed 在逗号分隔地址空间的情况下如何进行。
最佳答案
试试这个,它会删除所有连续的空行
cat states | sed '/./,/^$/!d'
输出:
California
Massachusetts
Arizona
Wisconsin
关于shell - 如何用每个只有 1 个空行替换许多中间空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270618/