sh -vx test.sh #!/bin/bash uuid="88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3" + uuid=88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3 # 去掉uuid中的横杠uuid=${uuid//-/} # 将uuid按照每2个字符分割,并且将其转换为16进制 uuid=$(echo $uuid | sed 's/(..)/\x\1/g') echo $uuid | sed 's/(..)/\x\1/g') echo $uuid | sed 's/(..)/\x\1/g' ++ sed 's/(..)/\x\1/g' ++ echo 88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3 + uuid='\x88\xd1\xb3\xab\x-2\xaf\xa-\x4c\x8b\x-b\x3c\x3-\xca\xff\x80\xec\xfd\xa3' # 转换为小写字母 uuid=$(echo -ne $uuid | xxd -r | tr '[:upper:]' '[:lower:]') echo -ne $uuid | xxd -r | tr '[:upper:]' '[:lower:]') echo -ne $uuid | xxd -r | tr '[:upper:]' '[:lower:]' ++ tr '[:upper:]' '[:lower:]' ++ xxd -r ++ echo -ne '\x88\xd1\xb3\xab\x-2\xaf\xa-\x4c\x8b\x-b\x3c\x3-\xca\xff\x80\xec\xfd\xa3' + uuid= echo $uuid + echo 检查一下错误
时间: 2023-07-20 11:28:06 浏览: 144
在您提供的脚本中,第7行的sed命令中匹配的正则表达式`(..)`应该使用两个反斜杠进行转义,修改后的脚本如下:
```bash
#!/bin/bash
uuid="88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3"
# 去掉uuid中的横杠
uuid=${uuid//-/}
# 将uuid按照每2个字符分割,并且将其转换为16进制
uuid=$(echo $uuid | sed 's/\(..\)/\\x\1/g')
# 转换为小写字母
uuid=$(echo -ne $uuid | xxd -r | tr '[:upper:]' '[:lower:]')
echo $uuid
```
该脚本首先去掉uuid中的横杠,然后使用sed命令将uuid按照每2个字符分割,并且将其转换为16进制格式。接着使用xxd命令将16进制格式的uuid转换为二进制格式,并且使用tr命令将其转换为小写字母。最后输出转换后的uuid字符串。
相关问题
"88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3"转换成"abb3d188fa2a8b4cb3c3caff80ecfda3"请给出shell脚本
可以使用以下的shell脚本实现该转换:
```bash
#!/bin/bash
uuid="88d1b3ab-2afa-4c8b-b3c3-caff80ecfda3"
# 去掉uuid中的横杠
uuid=${uuid//-/}
# 将uuid按照每2个字符分割,并且将其转换为16进制
uuid=$(echo $uuid | sed 's/\(..\)/\\x\1/g')
# 转换为小写字母
uuid=$(echo -ne $uuid | xxd -r | tr '[:upper:]' '[:lower:]')
echo $uuid
```
该脚本首先去掉uuid中的横杠,然后使用sed命令将uuid按照每2个字符分割,并且将其转换为16进制格式。接着使用xxd命令将16进制格式的uuid转换为二进制格式,并且使用tr命令将其转换为小写字母。最后输出转换后的uuid字符串。
阅读全文