我有千行的文本文件搜索在AWK多種模式
:ABC:xyz:1234:200:some text:xxx:yyyy:11818:AAA:BBB
:ABC:xyz:6789:200:some text:xxx:yyyy:203450:AAA:BBB
:EFG:xyz:11818:200:some text:xxx:yyyy:154678:AAA:BBB
:HIJ:xyz:203450:200:some text:xxx:yyyy:154678:AAA:BBB
:KLM:xyz:7777:200:some text:xxx:yyyy:11818:AAA:BBB
.....
....
:DEL:xyz:1234:200:some text:xxx:yyyy:203450:AAA:BBB
我需要找到即O/P的第九列出現了多次應顯示
:ABC:xyz:1234:200:some text:xxx:yyyy:11818:AAA:BBB
:KLM:xyz:7777:200:some text:xxx:yyyy:11818:AAA:BBB
:ABC:xyz:6789:200:some text:xxx:yyyy:203450:AAA:BBB
:DEL:xyz:1234:200:some text:xxx:yyyy:203450:AAA:BBB
我試過了:
awk -F ":" '$9 > 2 {split($0,a,":"); print $0}'
這打印出所有的記錄。
你的第九場似乎是「AAA的。它們從1開始編號。該程序執行期望的操作... $ 0表示整行。有時將模式編寫爲2.0 <(0.0 + $ 9)非常有用,因此不會將其作爲字符串比較 – user1666959 2014-11-20 19:28:32
@ user1666959您忘記':'前有一個字段,所以第九個字段是數字。 – Jotne 2014-11-20 19:32:05
你說得對。不影響評論的其餘部分。 awk把它當作字符串比較..並且OP的代碼很混亂,分割是不相關的(即沒有發生'a')...所以我只是投入了想法。 – user1666959 2014-11-20 19:39:19