[英]Bash builtin (not SED!) search and replace using octal values
我在使代码正常工作时遇到问题:
for (( c=1; c<=$DirsArrCnt; c=c+$OneDirArrCnt )); do
# Replace every occurence of "/" (ASCII d47 o057) in path with "^A" (ASCII 1)
Hold="${DirsArr[$c]}"
DirsArr[c]="${Hold//\057/\001}"
done
最初,我跳过Hold变量,直接使用array元素,但是以为这是问题就排除了。
我是否正确指定八进制值? 我相信57是“ /”的八进制值,对吗?
我想这就是你想要的:
DirsArr[c]="${Hold//$'\057'/$'\001'}"
您使用的语法将\\0
解释为文字0
(即,与不使用反斜杠相比,没有什么不同)。 您需要C样式的字符串以使Shell解释您的数字代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.