csvファイルを通過し、IPアドレスの4番目のオクテットを2列目の値に置き換えるのに役立つ単純なawkスクリプト/ワンライナーを作成したいと思います。最初の入力は次のようになります。
10.4.0。0 2
10.4.50. 0 4
10.4.15. 0 52
10.4.0。0 19
私は…したい
10.4.0。2
10.4.50。4
10.4.15. 52
10.4.0。19
次のように実行できます。
awk -F'[ .]' '{print $1 "." $2 "." $3 "." $5}' file.csv
次のように、簡単に、そして少しあいまいに行うことができます。
awk '{$4=$5} NF--' FS='[ .]+' OFS=. file.csv
$4=$5
4 番目のオクテットを 5 番目のフィールドに設定します。フィールドのカウントはドットとスペースに基づいています。NF--
には 2 つの関数があり、5 番目のフィールド ( $5
) を削除し、デフォルト ルール ( {print $0}
) が非ゼロであるため呼び出します。コメントとして投稿された OP による要求 (IP アドレスにネットマスクを追加する) は、この回答に簡単に追加できます。
awk '{$4=$5"/28"} NF--' FS='[ .]+' OFS=. file.csv
出力:
10.4.0.2/28
10.4.50.4/28
10.4.15.52/28
10.4.0.19/28