Eu tenho uma entrada (digamos um arquivo). Em cada linha há um nome de arquivo. Como posso ler este arquivo e exibir o conteúdo de cada um.
158
Algo assim faria:
xargs cat <filenames.txt
O xargs
programa lê sua entrada padrão e, para cada linha de entrada, executa o cat
programa com as linhas de entrada como argumento (s).
Se você realmente deseja fazer isso em um loop, pode:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"foreach" não é o nome do bash. É simplesmente "para". Você pode fazer coisas em uma linha apenas como:
Referência: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
fonte
Aqui está um
while
loop:fonte
read
Isso produzirá o nome do arquivo seguido pelo conteúdo do arquivo:
fonte
Você provavelmente desejará lidar com espaços em seus nomes de arquivos, por mais abomináveis que sejam :-)
Então, eu optaria inicialmente por algo como:
fonte
fará o truque
fonte
Se todos eles tiverem a mesma extensão (por exemplo .jpg), você poderá usar isto:
(Esta solução também funciona se o nome do arquivo tiver espaços)
fonte