Иногда я использую команду удара для строки замены в предыдущей команде:
^foo^bar
Сегодня я хотел сделать замену в следующей строке для замены всех случаев 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.
man bash
говорит ^ old ^ new
эквивалентно !!: s / старый / новый /
. Вы хотите !!: gs / old / new /
для глобальной замены.
Простой способ сделать это:
fc -s checkbox=radio
У меня есть псевдоним r
, определенный в моем .bashrc
:
alias r='fc -s'
Тогда то, что вы хотите сделать, становится:
r checkbox=radio
Смотрите мой ответ на вопрос "скрытые возможности bash" для деталей.