【问题标题】:Convert strings to bash escaped form将字符串转换为 bash 转义形式
【发布时间】:2017-04-28 08:54:24
【问题描述】:

如何将普通字符串(在我的例子中是文件名)转换为 Linux CLI/bash 转义字符串?

例子:

"It's a great weather today" -> "It\'s\ a\ great\ weather\ today"

"Wind [Wine]" -> "Wind\ [Wine]"

"/Downloads/RPM's/" -> "/Downloads/RPM\'s/"

我想知道是否有更简单的方法可以做到这一点,因为我正在读取我的 python 脚本中的文件名,并且当我将它们转发到 bash 命令时,它失败了。

问题是文件数量太多,我无法为它们重命名或进行字符串操作。


我在 CentOS 7 系统上使用 Python 2.7

【问题讨论】:

  • 你在使用subprocess吗?如果bash 脚本编写正确,则不需要。如果bash 脚本没有正确编写,则无法保证这样做会有所帮助。
  • foo="Wind [Wine]"; subprocess.call(["script.bash", foo])。不需要转义 foo

标签: python linux bash command-line-interface


【解决方案1】:

使用shlex,见here,它有escapeqoutesescapedqoutes的参数。

【讨论】:

猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 2013-01-29
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多