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。
或者,管道一个字符串,搜索和替换它并在一行中执行将是我的第二选择。
如果你想替换所有出现的字符串(switch g),你需要写:
!!:gs/oldstring/newstring/
Run Code Online (Sandbox Code Playgroud)
这将在您的最后一个命令中用newstring替换oldstring并运行它们并将结果存储到历史记录中。
否则:那么语法^oldstring^newstring^ 是一个快捷方式:
!!:s/oldstring/newstring/
Run Code Online (Sandbox Code Playgroud)
只替换第一次发现的字符串。