Não é o que você pediu diretamente, mas você pode usar várias formas de interacção histórica para simplificar a sua tarefa:
$ cat path/to/dir/file01.txt
cat: path/to/dir/file01.txt: No such file or directory
$ different-command !$
different-command path/to/dir/file01.txt
bash: different-command: command not found
$ cat !$:s/1/2/
cat path/to/dir/file02.txt
cat: path/to/dir/file02.txt: No such file or directory
$ ^2^3
cat path/to/dir/file03.txt
cat: path/to/dir/file03.txt: No such file or directory
$ !-3:s/1/3/
different-command path/to/dir/file03.txt
bash: different-command: command not found
$ !diff:s/3/4/
different-command path/to/dir/file04.txt
bash: different-command: command not found
Ignorando os erros, cada vez que eu usei a interação do histórico ( !$
, !$:s/1/2
, ^2^3
), você pode ver como bash
o expandiu.
-
!$
- a última palavra do comando anterior
-
:s/1/2
- substitui a primeira ocorrência de 1
por 2
na palavra selecionada (nesse caso, !$
novamente).
-
^2^3
- substitui a primeira ocorrência de 2
por 3
em todo o comando anterior.
-
!-3
- executa o terceiro e último comando.
-
!diff
- execute o último comando que iniciou com diff
.