我有一個文本文件是這樣的:我如何用awk grep IP塊?
1|2|3|4|5|6|7|8|9|192.168.1.1
1|2|3|4|5|6|7|8|9|192.168.2.1
1|2|3|4|5|6|7|8|9|192.168.22.1
1|2|3|4|5|6|7|8|9|192.168.222.1
我需要打印,如果$ 10點開始用,這樣的 「192.168.2。」:
1|2|3|4|5|6|7|8|9|192.168.2.1
我想是這樣的(我用VAR因爲我從其他文件中這一IP模塊,這只是樣品):
awk -v var="192.168.2." -F'|' '{if ($10 ~ "^" var) print $0;}'
輸出:
1|2|3|4|5|6|7|8|9|192.168.2.1
1|2|3|4|5|6|7|8|9|192.168.22.1
1|2|3|4|5|6|7|8|9|192.168.222.1
我該如何解決這個問題?爲什麼在var中最後一個.
不工作?
嘗試在if塊中打印$ 10。 – kakurala
如果你將字段正則表達式,你也可以使用'grep'。 'IP = 「192.168.2。」 && IP = $(sed's /\./\\./ g'<<<「$ {IP}」)&& grep -E「^([^ |] * [|]){9} $ {IP }「input.txt」 –