我正在寻找 VI/VIM 中的命令来搜索文件中的特定文本并抓取整行并输出到屏幕或单独的文件中。例如
This is some line with this _word_ and some other text.
This is some line with this some other text and some other text.
所以这只会输出第一行..
最佳答案
:redir > output.txt
:g/_word_/p
:redir END
该行将输出到屏幕和 output.txt
。请参阅:h :redir
。
编辑:我同意其他人的建议,如果可以的话,建议使用普通的旧 *nix grep
。您可能无法使用 grep
的情况:
- 您正在搜索文件系统上的文件中不存在的缓冲区文本。
- 您正在使用 Vim 特定的正则表达式扩展,例如光标位置、列号、标记等。
- 您希望以跨平台方式执行此操作,而您使用的系统上可能不存在
grep
。
redir
在这些情况下很有用。
关于vim - vi,查找行并输出/输出到单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603763/