Mag*_*ero 2 vim full-text-search replace
我已经习惯在Vim中使用表达式来替换大文件,并且想知道要学习哪些实用程序,这将允许我以类似的方式在文件夹中执行此类操作.什么命令行程序的搜索和替换最像vims和跨文件夹工作?
sed -i.bak 's/foo/bar/g' *
Run Code Online (Sandbox Code Playgroud)
将取代每一个foo与bar上在代替当前目录下的每个文件的每一行,并创建一个备份文件.bak扩展名.
所以我会调查一下sed.但是...... Vim很有能力:
vim -c "bufdo!%s/foo/bar/g" -c "wqa" *
Run Code Online (Sandbox Code Playgroud)
几乎是一样的.
bufdo!执行以下命令(%s/foo/bar/g在这种情况下=>将每行替换foo为bar每行(%是每行的特殊行地址)).wqa意思是:写下所有然后退出.您最多可以指定10个-c切换到Vim,这将按指定的顺序执行.所以,基本上这是Vim自动化:
唯一的区别是缺少备份文件创建(可以通过某些.vimrc设置轻松实现).但sed速度更快.