我需要一个bash命令,将字符串转换为转义的字符串.这是一个例子:
echo "hello\world" | escape | someprog
Run Code Online (Sandbox Code Playgroud)
escape命令将"hello\world"变为"hello \\ world".然后,someprog可以按预期使用"hello\world".当然,这是我将要做的事情的简化示例.
Pau*_*ce. 142
在Bash:
printf "%q" "hello\world" | someprog
Run Code Online (Sandbox Code Playgroud)
例如:
printf "%q" "hello\world"
hello\\world
Run Code Online (Sandbox Code Playgroud)
这也可以通过变量使用:
printf -v var "%q\n" "hello\world"
echo "$var"
hello\\world
Run Code Online (Sandbox Code Playgroud)
Cae*_*sar 13
Bash 内置${\xe2\x80\xa6@Q}
扩展已在不久前添加:
echo "hello\\\\world" | ( read -rsd \'\' x; echo ${x@Q} )\n\'hello\\world\'\n
Run Code Online (Sandbox Code Playgroud)\n转义输出采用 Bash 格式,因此它可能不是您需要的。
\n另请参阅:使用 Bash 时哪些字符需要转义?
\nPure Bash,使用参数替换:
string="Hello\ world"
echo ${string//\\/\\\\} | someprog
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
101039 次 |
最近记录: |