次の画面出力があります。
170.170.170.0.156.96 24
パイプして次の形式に変換したい
b8:27:eb:ef:3b:4a 24
デフォルトでは、最初のフィールドは10進数から16進数に変換され、点はコロンで置き換えられます。どんな提案がありますか?
ベストアンサー1
$ cat input
170.170.170.0.156.96 24
$ perl -lane '$F[0] =~ s/(\d+)/sprintf "%02x",$1/eg; $F[0] =~ tr/./:/; print "@F"' < input
aa:aa:aa:00:9c:60 24
$
印刷せずに標準入力を繰り返して分割して@F
最初の列($F[0]
)を削除し、すべての数字を対応する16進数と.to:tr
変換に置き換えます。 printに含まれる新しい値@F
。