【发布时间】:2014-08-07 20:20:56
【问题描述】:
我想要达到的目标:
假设我有一个文件file,内容如下:
ENV_VAR='/foo/`whoami`/bar/'
sh my_script.sh 'LOL'
我想替换 - 使用 sed - 单引号 包围目录名称,而不是那些包围看起来不像目录的东西,例如,参数一个脚本。
也就是说,在运行sed 命令后,我希望得到以下输出:
ENV_VAR="/foo/`whoami`/bar/"
sh my_script.sh 'LOL'
我们的想法是在不使用tr 将' 替换为" 或sed 像s/'/"/g 的情况下实现这一点,因为我不想替换似乎不是的行目录。
请注意sed 在AIX 上运行,因此没有GNU sed 可用。
我尝试过的:
如果我像这样使用sed:
sed "s;'=.*/.*';&;g" file
...& 变量保存了之前匹配的正则表达式,即:='/foo/`whoami`/bar/'。但是,我不知道如何进行替换,以便将 单引号 转换为 双引号。
我想知道是否有办法通过单线仅使用sed 来完成这项工作。
【问题讨论】: