txtファイルをCSVとして処理するスクリプト

txtファイルをCSVとして処理するスクリプト

この問題を解決するためにスクリプトを作成しようとしています。

Mikrotik01#show unique routing entry | 192.168.255.232 | inc ID
Thu June 10 15:21:32.808 CST
 Unique Entry: 192.168.255.21
 Unique Entry: 192.168.255.233
 Unique Entry: 192.168.255.155
Mikrotik01#show unique routing entry | 192.168.255.233 | inc ID
Thu June 10 15:21:33.079 CST
 Unique Entry: 192.168.255.234
 Unique Entry: 192.168.255.232
Mikrotik01#show unique routing entry | 192.168.255.234 | inc ID
Thu June 10 15:21:33.347 CST
 Unique Entry: 192.168.255.233
 Unique Entry: 192.168.255.235

以下を含むCSVに変換:

192.168.255.232,192.168.255.21,192.168.255.233,192.168.255.155
192.168.255.233,192.168.255.234,192.168.255.232
192.168.255.234,192.168.255.233,192.168.255.235

デフォルトでは、最初の行から新しい行を開始し、「Mikrotik」ホスト名を含む次の行に達するまで、同じ行にコンマを使用して隣接する各ルーターIDを追加します。ここで新しい行を作成し、完全な実行を続けます。ファイル。最終結果はcsvです。

ベストアンサー1

awk -F'[[:blank:]|]+' '
    /^Mikrotik01/ {if (NR>1) print ""; printf "%s", $(NF-2)} 
    /Unique Entry/ {printf ",%s", $NF}
    END {print ""}
' file.txt > File.csv

おすすめ記事