Answers:
您可以使用sed:
sed -i.bak '1s/^.*$/new line/' *.txt
这将用.txt文本替换当前目录中所有文件的第一行,并new line对其进行更改以满足您的需要。
.bak如果您不希望使用扩展名,也可以使用扩展名备份原始文件:
sed -i '1s/^.*$/new line/' *.txt
好吧,使用vim自身:
vim -Nesc 'bufdo call setline(1,"This is the replacement.") | wq' file1 file2 ...
这是做什么的:
setline (n, text),很好,是一个函数,集线n到text。call 需要调用函数。bufdo 用于在缓冲区之间重复命令(无范围,它作用于所有缓冲区)。wq保存并退出缓冲区。我们需要在继续下一个缓冲区之前执行此操作,因此此call命令使用链接到该命令|。-c cmdcmd加载第一个缓冲区后,runs 是一个命令模式命令。Nes 打开不兼容的无声ex模式,这对于非交互式处理更好。好处:
setline文本内容可以是任何东西-一个&在sed替换文本可以产生意想不到的效果。sed看起来更容易使用,但是做起来真的很棒vim!非常感谢您的回答!
bufdo)。考虑您已经打开了文件并...并显示的替代文件1s/foo/bar/。
sed实际上就是我想要的!