Smile Asked: 2017-12-31 00:01:38 +0800 CST2017-12-31 00:01:38 +0800 CST 2017-12-31 00:01:38 +0800 CST sed /RegEx/,~N 格式地址 772 $ sed '/b/,~8 d' a-i.txt 我知道它的作用。但是,他们说〜8是“8的倍数”。为什么表示为“8的倍数”? sed 1 个回答 Voted Best Answer John1024 2017-12-31T00:09:20+08:002017-12-31T00:09:20+08:00 /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
/b/,~8
匹配从包含的行开始b
并持续到行号为 8 的倍数的行来自
man sed
:例子
这将打印包含
5
和所有后续行的任何行,直到并包括行号为 8 的倍数的下一行:这将从包含 14 的行打印到行号为 8 的倍数的下一行:
这将删除所有以匹配行开始
5
并以行号为 8 的倍数的下一行结束的行:相似但不同
这将打印第四行和之后的每八行:
这将打印一行匹配
4
和接下来的三行: