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

时间:2013-04-30 05:11:22

标签: regex bash shell grep

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

如果您想要替换字符串的所有出现(切换g),您需要写一下:

!!:gs/oldstring/newstring/

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

否则:语法^oldstring^newstring^是以下的快捷方式:

!!:s/oldstring/newstring/

仅替换首次发现的字符串。