我正在尋找一種方法,通過bash從非常大的txt文件中刪除多行模式。刪除以「0」結尾的行。在以「0」結尾的行之後。
我有這樣的人行:
1;alias;1.872198312
2;alias;0.
3;alias;0.
4;alias;2.982193126
5;alias;1.987502017
6;alias;0.
7;alias;0.802829100
8;alias;0.
9;alias;0.
10;alias;0.
11;alias;0.
12;alias;1.7210172
我想這個文件轉換成類似:
1;alias;1.872198312
2;alias;0.
4;alias;2.982193126
5;alias;1.987502017
6;alias;0.
7;alias;0.802829100
8;alias;0.
12;alias;1.7210172
從而降低了文件的大小。
我已經嘗試了grep的方法:
grep '0.$^[a-zA-Z0-9.;_]0.$' file.txt
沒有成功。
感謝您的建議。如果我嘗試運行這個命令,我只是得到一個空白輸出。也許有些東西搞亂了文本編碼。 – jetstream
ok試試這個命令:'awk -F';' '{if($ NF + 0 == 0)if(!z)z = 1;其次;其他z = 0} 1'文件' – anubhava
感謝您的解決方案,但它仍然無法正常工作......它只選擇線路。 – jetstream