我有一个非常大的文件(下面的片段)。我需要删除第一列中的数字没有从上面的行连续增加的任何行。
例如,我想保留代码片段中的第一行,其中第一列中的标识符为“ ” 40812
。然后我想保留“ 40813
”在第一列中的行(在我的示例中为第 3 行),然后是以“ 40814
,”开头的行,依此类推。我想删除任何违反此顺序的行,例如第二行。
我在这里查看了以前的问题/答案以寻找可能的解决方案,但到目前为止还没有成功。出现在几个问题中的一个解决方案是:
awk -F',' ' '!seen[$1]++ myFile
Run Code Online (Sandbox Code Playgroud)
我改编了另一个我看到的解决方案:
sort -t':' -k 1,1 -u myFile
Run Code Online (Sandbox Code Playgroud)
如果有人可以告诉我哪里出错了,我将不胜感激。我对文件操作不是很有经验。
40812 20406.000000 0.843859468 1083.209050130 -994.562279080 -993.349611938 22.120868921
40829 20414.500000 0.891283743 1144.084593627 -994.539001565 -993.349739827 21.177788019
40813 20406.500000 0.829362077 1064.599666089 -994.546948121 -993.348764740 22.087239027
40830 20415.000000 0.889606427 1141.931529727 -994.537943593 -993.350242614 21.282490969
40814 20407.000000 0.822524589 1055.822814442 -994.540118434 -993.348757318 22.083606005
40831 20415.500000 0.875230513 1123.478077086 -994.523844766 -993.350421831 20.606467962
40815 20407.500000 0.823511602 1057.089780943 -994.541681744 -993.349315083 22.432111979
40832 20416.000000 0.846150258 1086.149592126 -994.494220141 -993.349798791 …
Run Code Online (Sandbox Code Playgroud)