在bash/sh脚本中,是否有方法格式化字符串中子字符串的宽度?
我必须使用bash脚本格式化字符串中子字符串的宽度,但不使用标记或循环。两个冒号之间的单个字符前面应加0,以匹配每个字段的标准宽度2 例如 发件人: 到 我该怎么做在bash/sh脚本中,是否有方法格式化字符串中子字符串的宽度?,bash,shell,Bash,Shell,我必须使用bash脚本格式化字符串中子字符串的宽度,但不使用标记或循环。两个冒号之间的单个字符前面应加0,以匹配每个字段的标准宽度2 例如 发件人: 到 我该怎么做 sed -r 's/\<([0-9a-f])\>/0\1/g' 如果任何字段的长度为=1,则这会将整行分割为由:分隔的字段。然后将该字段替换为0字段 如果任何字段的长度为=1,则这会将整行分割为由:分隔的字段。然后将该字段替换为0字段 Bash解决方案: IFS=:;对于$string中的i;do echo-n0$i:
sed -r 's/\<([0-9a-f])\>/0\1/g'
如果任何字段的长度为=
1,则这会将整行分割为由:
分隔的字段。然后将该字段替换为0
字段
如果任何字段的长度为=
1,则这会将整行分割为由:
分隔的字段。然后将该字段替换为0
字段 Bash解决方案:
IFS=:;对于$string中的i;do echo-n0$i:| tail-c3;完成
Bash解决方案:
IFS=:;对于$string中的i;do echo-n0$i:| tail-c3;完成
带有
您可以向所有令牌添加“0”,并删除不需要的令牌:
sed -r 's/0([0-9a-f]{2})/\1/g' <<< "0${str//:/:0}"
与
您可以向所有令牌添加“0”,并删除不需要的令牌:
sed -r 's/0([0-9a-f]{2})/\1/g' <<< "0${str//:/:0}"
“没有令牌”是什么意思?如何处理像abc这样的子字符串?没有令牌”是什么意思?如何处理像abc这样的子字符串?
$ sed -r 's/\<([0-9a-f])\>/0\1/g' <<< "6:0:36:35:30:30:72:6c:73:0:c:52:4c:30:31:30:31:30:30:30:31:36:39:0:1:3"
06:00:36:35:30:30:72:6c:73:00:0c:52:4c:30:31:30:31:30:30:30:31:36:39:00:01:03
awk -F: -v OFS=: '{for(i=1;i<=NF;i++) if(length($i)==1)gsub($i,"0&",$i)}1' file
06:00:36:35:30:30:72:6c:73:00:0c:52:4c:30:31:30:31:30:30:30:31:36:39:00:01:03
str="06:00:36:35:30:30:72:6c:73:00:0c:52:4c:30:31:30:31:30:30:30:31:36:39:00:01:03"
sed -r 's/0([0-9a-f]{2})/\1/g' <<< "0${str//:/:0}"
echo $(IFS=:; printf "%2s:" ${str} | tr " " "0")