20000024ff3dbf50
私はそれを次のように変換したい文字列を持っています: 20:00:00:24:ff:3d:bf:50
、私は試しましたsed
:
echo 20000024ff3dbf50 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6:\7:\8/'
しかし、それは少し醜いです。
2 つの置換:
echo "20000024ff3dbf50" | sed 's/../&:/g;s/.$//'
結果:
20:00:00:24:ff:3d:bf:50
echo 20000024ff3dbf50 | grep -o .. | paste -d ':' -s -
-o を指定した grep は、入力を 1 行あたり 2 文字に分割します。貼り付けは区切り文字 ':' を使用して [-s]erially にパディングします
これには GNU awk 自動分割を使用することもできます。
echo 20000024ff3dbf50 | awk '$1=$1' FPAT=.. OFS=:
出力:
20:00:00:24:ff:3d:bf:50