Если вы ищете что-то менее сложное для запоминания, которое выполняет то же самое, что и выше !!:gs/foo/bar/
, вы всегда можете создать функцию в вашем скрипте запуска .bash_profile. Я выбрал replace()
.
replace() {
eval $(echo $(fc -ln -1) | eval "sed 's/${1}/${2}/g'") #compact form
}
ИЛИ, менее запутанно
replace() {
string=$(fc -ln -1) #gets last command string
repcmmd="sed 's/${1}/${2}/g'" #build replacement sed command from fn input
eval $(echo $string | eval $repcmmd) #evaluates the replacement command
}
Тогда заменить все можно на
echo foo foo
replace foo bar