每2个字节添加一个符号

时间:2013-02-22 09:06:02

标签: bash sed

我有一个字符串20000024ff3dbf50,我希望将其转换为:20:00:00:24:ff:3d:bf:50,我尝试使用sed

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

但它有点难看。

3 个答案:

答案 0 :(得分:4)

两次换人:

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

结果:

20:00:00:24:ff:3d:bf:50

答案 1 :(得分:2)

echo 20000024ff3dbf50 | grep -o .. | paste -d ':' -s -

grep with -o将输入分成每行2个字符; paste使用分隔符':'来填充它们[-s] erially

答案 2 :(得分:1)

您也可以使用GNU awk自动拆分:

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

输出:

20:00:00:24:ff:3d:bf:50