有时我会使用bash命令替换上一个命令中的字符串:
^foo^bar
今天我想在以下行中进行替换,用`radio:
替换所有出现的checkbox
$ git mv _product_checkbox_buttons.html.erb _product_checkbox_button.html.erb
$ ^checkbox^radio
git mv _product_radio_buttons.html.erb _product_checkbox_button.html.erb
所以它只替换第一次出现。如何更换所有出现的内容?
bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
答案 0 :(得分:32)
man bash
说^old^new
相当于!!:s/old/new/
。您希望!!:gs/old/new/
全局替换。
答案 1 :(得分:14)
这样做的一个简单方法是:
fc -s checkbox=radio
我的r
:
.bashrc
alias r='fc -s'
然后你想做的事情变成:
r checkbox=radio
有关详细信息,请参阅my answer至“hidden features of bash”问题。