Substitua a última palavra do último comando, mas mantenha o primeiro

3

Supondo que eu tenha um script para percorrer vários arquivos com determinadas opções e executar esse script com muitas palavras diferentes:

$ mygrep worda
[output]
$ mygrep wordb
[output]
$ mygrep wordc
[output]

Eu sei que !$ é um espaço reservado para a última palavra do último comando. Existe um espaço reservado semelhante para a primeira palavra, para que eu possa economizar alguma digitação?

    
por muk.li 15.10.2015 / 23:09

1 resposta

5

Não $! mas !$ - as expansões do histórico bash começam com ! .

O oposto de !$ , o último argumento, é !^ , o primeiro argumento .

O comando anterior pode ser recuperado como !:0 , não tão fácil de digitar quanto !$ .

Você também pode pesquisar e substituir por ^worda^wordb . Isso não é global pesquisar e substituir, apenas substitui o primeiro encontrado. A pesquisa e substituição global é !!:gs/worda/wordb .

Ufa. Mais informações em link

    
por 15.10.2015 / 23:11