用Sed替换BASH中的字符串(当它有特殊字符时)

时间:2015-06-14 12:35:53

标签: bash replace sed

这是一个相当简单的问题,我确信这里的大师可以立即弄明白,但我似乎无法使其发挥作用(可能是一些引用问题。< / p>

我想放置以下所有实例:

`which cat`

以下内容:

/bin/cat

我正在运行以下命令:

for file in $(find . -iname 'PATCH*'); do sed 's/\`which cat\`/\'\/bin\/cat/g' $file; done

我相信我已经逃脱了所有不需要被视为特殊角色的角色,但它似乎没有做到这一点。

请帮助:)

2 个答案:

答案 0 :(得分:2)

迭代find的输出通常不是一个好主意,因为文件名可以包含会破坏循环的$IFS。请改用-exec的{​​{1}}选项:

find

答案 1 :(得分:1)

使用其他sed分隔符。

  (null): error: No such file or directory - old dSYM file cannot be overwritten:       old: '/Users/.../Xcode/DerivedData/Project-gzbujuaqsogtbwbatsbvviqtmsqf/Build/Products/Debug-iphonesimulator/Project.app.dSYM/Contents/Resources/DWARF/Project'

示例:

https://developer.android.com/sdk/index.html#Other