如果文件包含以下内容:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
如何删除“第 5 行”之前两行以上的行,以便文件现在仅包含以下内容?
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
如果文件包含以下内容:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
如何删除“第 5 行”之前两行以上的行,以便文件现在仅包含以下内容?
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
ed
使用- 支持地址偏移可能会更简单:或(就地修改文件)
通过首先反转输入行,可以更容易地解决此类问题。例如:
n && !--n{exit}
true
当n
达到 时将变为0
. 在这种情况下,这意味着该行包含Line 5
后跟另外两行。和
sed
:注意:如果存在多个匹配项,上述解决方案将不起作用,因为它将匹配文件中的最后一个匹配项。这是一种解决方法:
如果你的文件少于 10,000 行,你可以使用这个
使用
pcregrep
: