使用LaTeX $ sim $-> $ \ sim $查找并替换所有找到的文件中的字符串

时间:2019-04-03 16:09:07

标签: regex bash sed grep

我知道这种问题之前已经问过很多次了,但是我遇到了一种奇怪的情况,我的大脑虚弱,忘了在某些降价文件中调用\时包括了$\sim$。我需要遍历并将$sim$的所有实例替换为$\sim$。我的代码正在运行,但实际上并没有替换我想要的任何单词。这是我尝试过的一些变化:

grep -rl '\$sim\$' . | xargs sed -i 's/\$sim\$/$\sim$/g'

grep -rlF '$sim$' . | xargs sed -i 's/\$sim\$/$\sim$/g'

grep -rlF '$sim$' . | xargs sed -i 's/$sim$/$\sim$/g'

grep -rlF '$sim$' . | xargs sed -i '' -e 's/$sim$/$\sim$/g'

主题上的其他奇怪变化。该代码仅运行而没有任何输出,但是当我检查文件时,没有任何改变。我认为这是一个sed问题(我是macOS)或一个正则表达式问题。

2 个答案:

答案 0 :(得分:0)

喜欢这个:

grep -rlF '$sim$' | xargs sed -i 's/$sim\$/$\\sim$/g'

对于MacOsX:

grep -rlF '$sim$' | xargs sed -i '' 's/$sim\$/$\\sim$/g'

答案 1 :(得分:0)

sed -i更改文件,但是您并没有告诉sed对任何文件进行操作。您将在sdin上输入sed。

您想要的是类似的东西

find . -type f -exec sed -i 's/\$sim\$/$\\sim\$/g' {} \;