我有一个字符串20000024ff3dbf50
,我想将其转换为:20:00:00:24:ff:3d:bf:50
,我尝试过sed
:
echo 20000024ff3dbf50 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6:\7:\8/'
但它有点难看。
两个换人:
echo "20000024ff3dbf50" | sed 's/../&:/g;s/.$//'
结果:
20:00:00:24:ff:3d:bf:50
echo 20000024ff3dbf50 | grep -o .. | paste -d ':' -s -
带有 -o 的 Grep 将输入拆分为每行 2 个字符;paste 使用分隔符 ':' 来填充它们 [-s]erial
您还可以为此使用 GNU awk 自动拆分:
echo 20000024ff3dbf50 | awk '$1=$1' FPAT=.. OFS=:
输出:
20:00:00:24:ff:3d:bf:50