Bash: Como posso substituir uma string em um comando anterior?

3

Eu preciso substituir uma palavra na linha ou URL, mas preciso fazê-lo na linha de comando / terminal.

quero dizer

$ ./myscript.sh xxx.xxx.xxx.xxx:8080/code -c code1 -t query

Agora, a partir daí, sem voltar, preciso substituir code1 por mycode ou alguma outra string.

    
por rɑːdʒɑ 16.11.2015 / 14:41

1 resposta

17

Eu renomei seu script, mas aqui está uma opção:

$ ./myscript.sh xxx.xxx.xxx.xxx:8080/code -c code1 -t query

depois de executar o script, use:

$ ^code1^code2

... o que resulta em:

./myscript.sh xxx.xxx.xxx.xxx:8080/code -c code2 -t query

man bash e pesquise por "Designadores de evento":

^string1^string2^

Quick substitution. Repeat the last command, replacing string1 with string2. Equivalent to !!:s/string1/string2/

Editando para adicionar substituto global, que eu aprendi agora da resposta do @slm no link :

$ !!:gs/string1/string2

que diz:

!! - recall the last command
g - perform the substitution over the whole line
s/string1/string2 - replace string1 with string2
    
por 16.11.2015 / 18:29