重击:替换上一个命令中所有出现的单词


14

几乎是错误的,我发现您可以执行以下操作:

$ cp foo.data bar1.data
$ ^bar1^bar2

并且运行相同的命令,bar2.data而不是bar1.data。现在,如果我多次出现目标词怎么办?例如:

$ cp foo.data bar.data
$ ^data^index

它仅替换第一个data扩展名。我如何才能同时替代两者?

Answers:



7

您可以通过在结尾添加^:&来实现。
^:&将替换两个匹配项
^:g&将替换所有匹配项

$ cp foo.data bar.data
$ ^数据^索引^:&
$ cp foo.index bar.index
$ cp foo.data bar.data joe.data doe.data
$ ^数据^索引^:g&
$ cp foo.index bar.index joe.index doe.index

旁注:在“命令行功夫”一书中,
它表示^:&将取代所有


1
实际上,^:&将进行两次替换。要进行所有操作,请使用^:g&g代表“全局”)。
G-Man说'Restorestate Monica''July

天哪!我从未测试过两次以上。阅读书中的命令。
Note89
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.