2

20000024ff3dbf50私はそれを次のように変換したい文字列を持っています: 20:00:00:24:ff:3d:bf:50、私は試しましたsed:

echo 20000024ff3dbf50 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6:\7:\8/'

しかし、それは少し醜いです。

4

3 に答える 3

4

2 つの置換:

echo "20000024ff3dbf50" | sed 's/../&:/g;s/.$//'

結果:

20:00:00:24:ff:3d:bf:50
于 2013-02-22T09:10:48.597 に答える
2
echo 20000024ff3dbf50 | grep -o .. | paste -d ':' -s -

-o を指定した grep は、入力を 1 行あたり 2 文字に分割します。貼り付けは区切り文字 ':' を使用して [-s]erially にパディングします

于 2013-02-22T09:16:40.040 に答える
1

これには GNU awk 自動分割を使用することもできます。

echo 20000024ff3dbf50 | awk '$1=$1' FPAT=.. OFS=:

出力:

20:00:00:24:ff:3d:bf:50
于 2013-02-22T09:26:28.693 に答える