^word^replacement^ на всех соответствиях в Bash?

После некоторых исследований я обнаружил, что unobtrusive может быть повторно проанализирован после загрузки формы ajax:

47
задан codeforester 18 October 2017 в 03:02
поделиться

3 ответа

Попробуйте это:

$ echo oneone
oneone
$ !!:gs/one/two/    # Repeats last command; substitutes 'one' --> 'two'.
twotwo
64
ответ дан John Feminella 26 November 2019 в 19:45
поделиться

Противный способ обойти это мог быть чем-то вроде этого:

Хочу отозваться эхом BAABAA, а не BLABLA путем свопинга L для A

$ echo "BLABLA"   
BLABLA
$ `echo "!!" | sed 's/L/A/g'`
$(echo "echo "BLABLA" " | sed 's/L/A/g')
BAABAA
$

, К сожалению, эта техника, кажется, не работает в функциях или псевдонимах.

1
ответ дан pisswillis 26 November 2019 в 19:45
поделиться

Blending my answer here with John Feminella's you can do this if you want an alias:

$alias dothis='`history -p "!?monkey?:gs/jpg/png/"`'
$ls *.jpg
monkey.jpg
$dothis
monkey.png

The !! only does the previous command, while !?string? matches the most recent command containing "string".

6
ответ дан 26 November 2019 в 19:45
поделиться