Faça:
vim "$(sed -n "2 {p;q}" <(locate myfile.txt))"
Aqui estou abrindo o segundo resultado separado por nova linha encontrado por locate myfile.txt
com vim
.
Faça disso uma função e coloque seu ~/.bashrc
:
lovim () { vim "$(sed -n """ {p;q}" <(locate ""))" ;}
A função recebe o primeiro argumento como o nome do arquivo a ser pesquisado e o segundo como o número da linha resultante (arquivo) que você deseja abrir com vim
.
Mais robusto , lidando com nomes de arquivos com novas linhas em seus nomes:
lovim () { vim "$(sed -nz """ {p;q}" <(locate -0 ""))" ;}
Exemplo:
lovim myfile.txt 3
abrirá o terceiro arquivo a partir do resultado de locate myfile.txt
.
Escopo de expansão:
- Adicionando algumas verificações de integridade na entrada e na saída (se o número desejado de linhas (arquivo) estiver presente, antes de alimentar a
vim
)