[英]sed with a comment in macOS, it gives me an error
我找不到有关此问题的任何资源。
macOS 和 ubuntu 都给了我相同的结果,如下所示。
>>> seq 10 | sed '
3p
6d
'
1
2
3
3
4
5
7
8
9
10
但是当我插入评论时,macOS 中的 sed 给了我错误。
>>> seq 10 | sed '
3p # print 3rd line
6d # print 6th line
'
sed: 2: "
3p # print 3rd line
6 ...": extra characters at the end of p command
macOS 不支持评论吗? 还是我做错了什么? 请告诉我,谢谢。
每当您使用 sed 超过 s/old/new/ 时,您都在使用错误的工具,并且可能使用了不可移植的结构。 Just use awk for portability, clarity, efficiency, robustness, etc. This will work using any awk in any shell on every UNIX box:
$ seq 10 | awk '
NR == 3 { print }
NR == 6 { print }
{ print }
'
1
2
3
3
4
5
6
6
7
8
9
10
无需注释,因为代码清晰。 如果你喜欢当然可以添加评论:
$ seq 10 | awk '
NR == 3 { print } # print 3rd line
NR == 6 { print } # print 6th line
{ print } # print all lines
'
1
2
3
3
4
5
6
6
7
8
9
10
或者如果您想删除而不是打印第 6 行:
$ seq 10 | awk '
NR == 3 { print } # print 3rd line
NR == 6 { next } # delete 6th line
{ print } # print all lines
'
1
2
3
3
4
5
7
8
9
10
如果您喜欢简洁,您可以通过依赖默认行为使代码不太清晰:
# seq 10 | awk '
NR == 3 # print 3rd line
NR == 6 # print 6th line
1 # print all lines
'
1
2
3
3
4
5
6
6
7
8
9
10
$ seq 10 | awk '
NR == 3 # print 3rd line
NR != 6 # print all lines except the 6th
'
1
2
3
3
4
5
7
8
9
10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.