답변:
!!:gs/search/replace/
표기법을 사용하여 원하는 것을 수행 할 수 있습니다. 전역 검색 및 바꾸기 ( :gs
)를 사용합니다.
전에
$ echo "harm warm swarm barm"
harm warm swarm barm
후
$ !!:gs/arm/orn/
echo "horn worn sworn born"
horn worn sworn born
[subhrcho@slc04lyo pcbpel]$ echo "hat that bat" hat that bat [subhrcho@slc04lyo pcbpel]$ !!:gs/at/xx/ echo "hxx that bat" hxx that bat
. 내가 무엇을 놓치고 있습니까?
bash --version
= 4.2.45 (1) 릴리스.
모든 경우를 대체 ^string1^string2
하기 위해 무언가를 추가하는 쉬운 방법이 없다고 생각 bash
합니다. slm이 지적했듯이을 작성해야합니다 !!:gs/string1/string1
.
그러나에 zsh
다음을 추가 할 수 있습니다 :G
.
$ echo foo foo
foo foo
$ ^foo^bar^:G
echo bar bar
bar bar
와에서 모두 다음 bash
과 같이 zsh
사용할 수 있습니다 fc -s
.
$ echo foo foo
foo foo
$ fc -s foo=bar
echo bar bar
bar bar
이것은 종종 별명으로 만들어 r
지므로 다음과 같이 할 수 있습니다.
$ echo foo foo
foo foo
$ r foo=bar
echo bar bar
bar bar
최선의 선택은 ": &"를 사용하는 것입니다
$ echo "dog cat dog"
$ ^dog^cat^:&
echo "cat cat cat"
cat cat cat
:&
교체 할 횟수가 더 많을수록 추가해야합니다 .
command-history
태그를 사용하는 것 같습니다 . 추가되었습니다. 또한bash
쉘을 언급한다고 가정 합니까?