Cri*_*ian 0 linux terminal grep replace sed
假设有一个名为"my-folder"的文件夹,其中包含100个文件.如果我们要在所有100个文件中替换(不是在文件名中,而是在实际文件中)字符串"originalString"和"replacementString"什么命令应该完成这项工作?
尝试:
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 +而不是\;find的exec选项的结束分隔符.这类似xargs- 通过附加每个选定的文件名来构建命令行.最后,命令的调用总数将远远少于匹配文件的数量.
| 归档时间: | 
 | 
| 查看次数: | 155 次 | 
| 最近记录: |