2016-09-17 8 views
0

radvdを使用して、3002:0200:00bc:098a ::/64の形式で64ビットのプレフィックスを生成しましたが、クライアントデバイスのeth0に表示されます3002:200:bc:98a ::/64の形式で表示されます。今私はこのアドレスを抽出し、3002:200:bc:98aとして "temp"のようなファイルに保存するスクリプトを持っています。 3002:0200:00bc:098aの形式に変更する必要があります。アドバイスをいただければ幸いです。IPv6を扱うubuntuバッチスクリプトの正規表現の扱い方

答えて

0
$ cat ip.txt 
3002:200:bc:98a 
20:1:ad:8b 

$ perl -lpe 's/[^:]+/sprintf "%04s", $&/ge' ip.txt 
3002:0200:00bc:098a 
0020:0001:00ad:008b 
  • [^:]+gすべてのマッチを置き換えるためのものであり、e
を必要に応じて置換部におけるPerlコードが
  • sprintf "%04s", $&マッチした文字列の書式を設定できるようにすることである
  • geを変換するフィールド
  • 関連する問題