使用带有sed的正则表达式时跳过前n行?

时间:2011-07-29 06:31:46

标签: unix text command-line sed

sed中,是否可以在应用正则表达式时跳过前n行?我目前正在使用以下内容:

cat test | sed '/^Name/d;/^----------/1;/^(/d;/^$/d'

在以下文件中:

Name
John
Albert
Mora
Name
Tommy
Tammy

在一次传递中,我想使用一些正则表达式(其中一个是删除包含Name的行,但我想跳过这种情况下的第一行)以获取以下内容:

Name
John
Albert
Mora
Tommy
Tammy

因为文件很大,我不想多次通过,所以任何一次通过方法都会很棒。

1 个答案:

答案 0 :(得分:24)

是的,您可以将sed命令应用于具有N,M语法的行范围。在这种情况下,你想要这样的东西:

sed -e '2,$s/foo/bar/'

删除示例:

sed -e '2,${ /^Name/d }'