我知道这种问题之前已经问过很多次了,但是我遇到了一种奇怪的情况,我的大脑虚弱,忘了在某些降价文件中调用\
时包括了$\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)或一个正则表达式问题。
答案 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' {} \;