Réponses:
Vous pouvez utiliser la !!:gs/search/replace/
notation pour faire ce que vous voulez. Ceci utilise la recherche globale et remplacer ( :gs
):
avant
$ echo "harm warm swarm barm"
harm warm swarm barm
après
$ !!: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
. Qu'est-ce que je rate?
bash --version
= Libération de 4.2.45 (1).
Je ne crois pas qu'il existe un moyen facile d'ajouter quelque chose ^string1^string2
à faire pour bash
remplacer chaque occurrence. Comme le fait remarquer le slm, vous devez écrire !!:gs/string1/string1
.
Mais dans zsh
, vous pouvez simplement ajouter :G
:
$ echo foo foo
foo foo
$ ^foo^bar^:G
echo bar bar
bar bar
Dans les deux cas bash
et zsh
, vous pouvez également utiliser fc -s
comme ceci:
$ echo foo foo
foo foo
$ fc -s foo=bar
echo bar bar
bar bar
Cela est souvent transformé en un alias appelé r
afin que vous puissiez simplement faire:
$ echo foo foo
foo foo
$ r foo=bar
echo bar bar
bar bar
Je crois que la meilleure option est d'utiliser ": &"
$ echo "dog cat dog"
$ ^dog^cat^:&
echo "cat cat cat"
cat cat cat
:&
qu'il y a de plus en plus d'occurrences à remplacer.
command-history
balise pour cela. Ajoutée. Aussi, je suppose que vous faites allusion à labash
coquille?