我想從文本文件中刪除與字符串匹配的行的某些列,但是保留行的其餘部分不變。當行匹配條件時刪除列
說我有(實際上行的千元),文件
10 12 a
USA John TGCAGG
USA John TGCATG
5 2 b
CAN Tom TGCACG
CAN Tom TGCAAC
....
我想創建一個新的文件,該文件中刪除包含TGCA行2列,但保留全部其他線路不變。我想看看:
10 12 a
USA TGCAGG
USA TGCATG
5 2 b
CAN TGCACG
CAN TGCAAC
我可以修改哪些列上匹配使用正則表達式來啓動AWK或sed的線條打印,但我不能讓其他線路(未修正)打印,或到保持這些行的順序。
我需要在awk中使用if語句嗎?嘗試使用下一個,但我不認爲我有這個權利。
我不太關注NF如何在這裏使用或如何設置所需的數字字段...如果有4列,我想保持3和4?或者讓我說我想保留第1和第3和第4列(但不是2)?有沒有更通用的方法來做到這一點(或解釋代碼)而不減少字段? – 2015-04-01 18:46:24
在awk中刪除列是非常棘手的。爲了防止獲得尾隨空格,我會去做這樣的事情:[如何使用shell(awk,sed,whatever)刪除文件中的前兩列](http://stackoverflow.com/a/14715189/1983854) – fedorqui 2015-04-01 18:51:24
所以,如果你能負擔得起減少'NF'是好的。如果它必須更復雜,我仍然會進行某種列移動,並最終減少「NF」。 – fedorqui 2015-04-01 18:56:50