- 求职 : 数据库管理员
- 论坛徽章:
- 0
|
本帖最后由 mwl940602 于 2017-08-17 09:31 编辑
n,m匹配的是从第n行到m行,n,~m匹配的是n到第一个行号是m倍数之间的行,但是我测试的时候发现两个的输出是一样的,不同之处到底在哪,或者说具体用在什么地方会有差别:
有如下文件:
[root@server shell]# cat a.txt
1
2
3
...
100
-------------------------------------------------
[root@server shell]# sed -n '1,5p' a.txt
1
2
3
4
5
-------------------------------------------------
[root@server shell]# sed -n '1,~5p' a.txt
1
2
3
4
5
-------------------------------------------------
我查资料弄清楚了,谢谢各位了:
n,m:
n<m时,匹配n到m行
n>m时,只匹配第n行
n,~m:
n>m时,匹配从n开始,到下一行是m的倍数的行
例:
$ seq 10 |sed '5,~3p'
5
6
n<m,匹配从n到m的行
$ seq 10 | sed '3,~5p'
3
4
5 |
|