次の表があります。
10.6.6.12 0:50:56:9b:a6:2
10.6.6.13 fe:9:31:b6:71:1d
私は次のことを持っている必要があります:
10.6.6.12,00:50:56:9b:a6:02
10.6.6.13,fe:09:31:b6:71:1d
Aは0
常にMACアドレスの「別名」文字の前に追加されます。私は良い結果が得られずに次のことを試しました。
rpl -i ":a:" ":0a:" file.txt
ベストアンサー1
cat /path/to/table | sed 's/\([ :]\)\([0-9a-f]:*\)/\10\2/g'
上記のトリックが必要です。この式を解釈するには、次の手順に従ってください。
\([ :]\)
- 角括弧はエスケープする必要がありますsed
。これはスペースやコロンと一致し、次のようになります。\([0-9a-f]:*\)
- 16進数の後に0個以上のコロンが続く場合:
次に置き換えられます:
\1
- 最初のグループ(スペースまたはコロン)0
- 数字0\2
- 2番目のグループ(単一の数字が見つかり、コロンがある場合)
ユースケースの例:
$ echo "1.2.3.4 5:3d:c:12:3" | sed 's/\([ :]\)\([0-9a-f]:*\)/\10\2/g'
1.2.3.4 05:3d:0c:12:03