$ sed '/b/,~8 d' a-i.txt
我知道它的作用。但是,他们说 ~8 是“8 的倍数”。为什么它表示为“8 的倍数”?
答案1
/b/,~8
匹配以包含以下内容的行开头的行b
,直到行号为 8 的倍数的行
从man sed
:
addr1,~N
将匹配addr1
及其后的行,addr1
直到下一行,其输入行号是 的倍数N
。
例子
这将打印包含以下所有行的任何行5
,直到下一行(其行号是 8 的倍数):
$ seq 14 | sed -n '/5/,~8 p'
5
6
7
8
这将打印从包含 14 的行到下一行(其行号是 8 的倍数):
$ seq 22 | sed -n '/14/,~8 p'
14
15
16
这将删除以行匹配开头5
并以下一行(其行号是 8 的倍数)结尾的所有行:
$ seq 10 | sed '/5/,~8 d'
1
2
3
4
9
10
相似但不同
这将打印第四行以及其后的每八行:
$ seq 22 | sed -n '4~8 p'
4
12
20
这将打印匹配的行4
以及随后的三行:
$ seq 13 | sed -n '/4/,+3 p'
4
5
6
7