在sed
中,是否可以在应用正则表达式时跳过前n行?我目前正在使用以下内容:
cat test | sed '/^Name/d;/^----------/1;/^(/d;/^$/d'
在以下文件中:
Name
John
Albert
Mora
Name
Tommy
Tammy
在一次传递中,我想使用一些正则表达式(其中一个是删除包含Name
的行,但我想跳过这种情况下的第一行)以获取以下内容:
Name
John
Albert
Mora
Tommy
Tammy
因为文件很大,我不想多次通过,所以任何一次通过方法都会很棒。
答案 0 :(得分:24)
是的,您可以将sed命令应用于具有N,M
语法的行范围。在这种情况下,你想要这样的东西:
sed -e '2,$s/foo/bar/'
删除示例:
sed -e '2,${ /^Name/d }'