我有一个字符串20000024ff3dbf50
,我希望将其转换为:20:00:00:24:ff:3d:bf:50
,我尝试使用sed
:
echo 20000024ff3dbf50 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6:\7:\8/'
但它有点难看。
答案 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