我想知道用于纠正先前执行的命令中的错误的最短命令。
鉴于我执行了以下命令
cd /Users/USERNAME/Library/Preferences/ByHost
我希望能够执行一个新命令,该命令接受上一个命令,通过grep
或类似的Unix工具进行管道传输,然后执行。在(我公认的未受过教育的)伪造的命令中有类似的东西
!! | xargs 's/$1/USERNAME/cirrostratus/g'
此命令将执行cd /Users/cirrostratus/Library/Preferences/ByHost
。
或者,管道串,搜索和替换它并在一行中执行将是我的第二选择。
答案 0 :(得分:4)
如果您想要替换字符串的所有出现(切换g
),您需要写一下:
!!:gs/oldstring/newstring/
这将在您最后一个命令中用 newstring 替换 oldstring 并运行它们并存储结果历史。
否则:语法^oldstring^newstring^
是以下的快捷方式:
!!:s/oldstring/newstring/
仅替换首次发现的字符串。