如何使用 sed 替换单个 '?

如何使用 sed 替换单个 '?

我需要在一堆文件中将 '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` 。

相关内容