假设存在一个名为“ my-folder”的文件夹,其中包含100个文件。如果我们要在所有100个文件中替换(不是在文件名中,而是在实际文件中),将字符串“ originalString”替换为“ replacedString”,应该执行什么命令?
尝试过:
grep -rl matchstring ~/my-folder | xargs sed -i 's/originalString/replacedString/g'
find ~/my-folder -type f -exec sed -i 's/originalString/replacedString/g' {} \;
我也在stackoverflow上阅读过此内容。
这些都不适合我。我拼错了吗?顺便说一句,我在Linux上。
我会用这个:
find my_folder -type f -exec sed 's/old_string/new_string/g' {} +
确定运行正常后,将-i
选项传递给sed以使其在适当位置编辑原始文件。
(非常)接近您的第二个解决方案,但是我使用+
而不是\;
find的exec选项的结尾定界符。效果类似xargs
-通过添加每个选定的文件名来构建命令行。最后,命令的调用总数将远小于匹配文件的数目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句