我想知道如何/如果我可以重用我的终端历史记录中的命令,但是在修改后的版本中.这是一个例子:
$filter_script file2 > output_file2 $# ... # now run the same command,but replace '2' with '4' $filter_script file4 > output_file4
这是一个非常简单的例子,当然我可以简单地从历史记录中访问命令并手动替换这两个2,但是有更优雅的方式吗?
非常感谢你的时间!
解决方法
如果你想要替换的只有一个实例,bash(1)有一个简单的功能,首先在csh(1)中引入:
^old^new
将用new取代旧的第一个实例:
$filter_script file2 > output_file2 $^2^4 filter_script file4 > output_file2
如果要替换所有实例,则需要更多输入:
$filter_script file2 > output_file2 $!:gs/2/4/ filter_script file4 > output_file4
g指定命令行上的全局替换.的!是指历史记录中的一行 – 如果您想在历史记录中进一步返回上一个命令,则可能更具体.请参阅bash(1)关于事件指示符的部分.