Tente o comando xargs
, por exemplo:
cat file | xargs ls
Ou
cat file | xargs gzip -c
Digamos que eu tenha um arquivo com uma lista de pacotes que desejo instalar, separados por espaços ou novas linhas. Como posso passar esse arquivo para o meu gerenciador de pacotes?
Leia o arquivo em uma matriz:
token=($(<list.txt))
yourCommand ${token[@]}
Se os tokens forem nomes de arquivos, contendo espaços e separados por novas linhas, isso não funcionará, pois os tokens geralmente são separados por espaços em branco no shell.
Supondo que os nomes dos pacotes não contenham nenhum caractere curinga (ou seja, nenhum de \[?*
), você pode usar uma substituição de comando :
install-packages $(cat list-of-packages.txt)
Supondo que os nomes dos pacotes não contenham nenhum dos caracteres \"'
, você pode usar xargs . Observe que isso redireciona a entrada do comando install-packages
da lista de pacotes, portanto, pode não funcionar se o instalado exigir alguma entrada interativa.
xargs install-packages <list-of-packages.txt