我有一个看起来像这个玩具示例的文件。我的实际文件有 400 万行,我需要删除其中大约 10 行。
ID Data1 Data2
1 100 100
2 100 200
3 200 100
ID Data1 Data2
4 100 100
ID Data1 Data2
5 200 200
Run Code Online (Sandbox Code Playgroud)
我想删除看起来像标题的行,除了第一行。
最终文件:
ID Data1 Data2
1 100 100
2 100 200
3 200 100
4 100 100
5 200 200
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在看书sed & awk
,我认为我理解了直到我执行以下n
命令sed
:
$ echo -ne "abc\ncde\nfg\n" | sed "/c/{
n
/f/d
}"
Run Code Online (Sandbox Code Playgroud)
输出:
abc
cde
fg
Run Code Online (Sandbox Code Playgroud)
但我希望该行fg
被删除。
我对流程的理解:
c
匹配行cde
,下一行是fg
并且应该被/f/d
命令删除,因为它被匹配f
。我非常确定我理解这个命令并且它很简单。特别是因为作者写道大写命令N,D,P
命令更难,如果你理解它们,那么无论如何你都会理解小写命令。但我对N
命令完全没有困难。