Ani*_*ino 4 bash shell brackets
我正在寻找一种解决方案来消除 Bash 字符串中的方括号。例如,考虑字符串:
ldr r3, [r0,#8]!
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何消除“[”和“]”。我想以最优雅的方式消除所有符号,例如:
str="ldr r3, [r0,#8]!"
echo ${str//[,.!]/}
Run Code Online (Sandbox Code Playgroud)
但包含方括号。如何才能做到这一点?
另一个干净的解决方案是 tr:
tr:翻译、压缩和/或删除标准输入中的字符,写入标准输出。
在哪里
-d, --delete 删除SET1中的字符,不翻译
以你的例子:
str="ldr r3, [r0,#8]!"
echo $str | tr -d "[]"
Run Code Online (Sandbox Code Playgroud)
输出是:
ldr r3, r0,#8!
Run Code Online (Sandbox Code Playgroud)
使用
echo "${str//[][,.!]}"
Run Code Online (Sandbox Code Playgroud)
因为[]不是一个有用的模式,所以当它是列出的第一个]字符时,它被视为括号表达式的一部分。括号表达式不能嵌套,因此对.[
您也可以简单地逃避]:
echo "${str//[[\],.!]}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7561 次 |
| 最近记录: |