我有一个类似的命令:
find ./ -type f | xargs gsed -i -r 's/[$][A-Za-z_\'"]/testing
我想让这个命令起作用。不幸的是,单引号和双引号破坏了命令。我怎样才能转义这个字符串并让这个命令起作用?
这个问题与这个问题不同 one因为我在 [.但是,如果稍微修改一下就能解决问题,我想知道。
我尝试了几种不同的方式使用@、#、\,但都没有成功。
最佳答案
看看这个:
kent$ cat file
''''''
""""""
kent$ sed 's/\x27/single /g;s/\x22/double /g' file
single single single single single single
double double double double double double
所以,将您的 cmd 更改为:
find ./ -type f | xargs gsed -i -r 's/[$][A-Za-z_\x22\x27]/testing'
注意 我没有检查你的 find/xargs 部分是否正确,只是检查单引号/双引号部分。
关于regex - 使用 sed 转义单引号和双引号。 geed, 查找, xargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303336/