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

两个换人:

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 将输入拆分为每行 2 个字符;paste 使用分隔符 ':' 来填充它们 [-s]erial

于 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 回答