替换最后一个命令的最后一个单词但保留第一个

muk*_*.li 4 bash command-history

假设我有一个脚本,用于通过某些选项对一堆文件进行 grep 并使用许多不同的词运行此脚本:

$ mygrep worda
[output]
$ mygrep wordb
[output]
$ mygrep wordc
[output]
Run Code Online (Sandbox Code Playgroud)

我知道!$是最后一个命令的最后一个字的占位符。第一个单词是否有类似的占位符,以便我可以节省一些打字时间?

gle*_*man 7

不是,$!而是!$- bash 历史扩展以!.

的反面!$,最后一个参数,是!^,第一个参数

前面的命令可以作为 检索!:0,不像 那样容易输入!$

您还可以进行搜索并替换为^worda^wordb。这不是全局搜索和替换,它只替换找到的第一个。全局搜索和替换是!!:gs/worda/wordb.

呼。更多信息请访问https://www.gnu.org/software/bash/manual/bashref.html#History-Interaction

  • 您也可以使用 `Up-Arrow` 后跟 `Ctrl-W` 来删除前一个单词(即最后一个参数)。 (3认同)