1

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

4

2 に答える 2

3

次のように実行できます。

 awk -F'[ .]' '{print $1 "." $2 "." $3 "." $5}' file.csv
于 2013-10-17T15:18:21.727 に答える
1

次のように、簡単に、そして少しあいまいに行うことができます。

awk '{$4=$5} NF--' FS='[ .]+' OFS=. file.csv

説明

  • $4=$54 番目のオクテットを 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
于 2013-10-17T19:28:33.453 に答える