我需要在一堆文件中将 '30 替换为 `30。以下不起作用:
grep -Rl "'30" /myDir | xargs sed -i "s/'30/`30/g"
我如何解决它?
我使用的是 Fedora 26 机器。
答案1
只需在反引号前添加一个反斜杠即可:
grep -Rl "'30" /myDir | xargs sed "s/'30/\`30/g"
答案2
find /myDir -maxdepth 1 -type f -exec grep -q \'30 {} \; -exec sed -i -e y/\'/\`/ {} +
在这里,您允许find
过滤目录中的文件,/myDir
携带字符串 , '30
,并仅将这些文件成堆传递给sed, which'll do an in-place editing
-i` 。