xyz*_*xyz 2 shell awk newline sed
我正在学习使用sed并有一个假设的要求:
bash$ cat states
California
Massachusetts
Arizona
Wisconsin
Run Code Online (Sandbox Code Playgroud)
我想输出:(基本上我只需要一个空行)
California
Massachusetts
Arizona
Wisconsin
Run Code Online (Sandbox Code Playgroud)
请建议使用sed的方法.它应该使用多线模式空间等的概念吗?
谢谢,
Jagrati
回答其中一条评论,好的,我运行了一些测试脚本,而错误的假设是地址空间选择标准只应用一次.它似乎一次又一次被激活.
bash$ cat file
a
b
c
a
b
c
bash$ sed -e '/a/,/b/s/$/x/g' file
ax
bx
c
ax
bx
c
Run Code Online (Sandbox Code Playgroud)
我的印象是它会产生:
ax
bx
c
a
b
c
Run Code Online (Sandbox Code Playgroud)
那么有人可以解释在逗号分隔的地址空间的情况下sed是如何进行的.
试试这个会删除所有连续的空白行
cat states | sed '/./,/^$/!d'
Run Code Online (Sandbox Code Playgroud)
输出:
California
Massachusetts
Arizona
Wisconsin
Run Code Online (Sandbox Code Playgroud)