命令行 - 替换上一个命令中的字符串并执行

jam*_*ack 1 regex bash shell grep

我想知道用于纠正先前执行的命令中的错误的最短命令。

鉴于我执行了以下命令
cd /Users/USERNAME/Library/Preferences/ByHost

我希望能够执行一个新命令,该命令采用上一个命令,通过管道grep或类似的 Unix 工具将其传输,然后执行。在(我公认的未受过教育的)伪命令中是这样的。
!! | xargs 's/$1/USERNAME/cirrostratus/g'

该命令将执行cd /Users/cirrostratus/Library/Preferences/ByHost

或者,管道一个字符串,搜索和替换它并在一行中执行将是我的第二选择。

F. *_*uri 5

如果你想替换所有出现的字符串(switch g),你需要写:

!!:gs/oldstring/newstring/
Run Code Online (Sandbox Code Playgroud)

这将在您的最后一个命令中用newstring替换oldstring运行它们并将结果存储到历史记录中。

否则:那么语法^oldstring^newstring^ 是一个快捷方式:

!!:s/oldstring/newstring/
Run Code Online (Sandbox Code Playgroud)

只替换第一次发现的字符串。