
Preciso ler a entrada de um arquivo fornecido no seguinte formato.
$ ./process_data.sh arg1 < input_data.txt
Como leio input_data
meu script de shell process_data.sh
?
Responder1
Nesse uso, existem várias maneiras de lê-lo: durante a construção (irá gerar o argumento e cada string do arquivo input_data.txt)
#!/bin/bash
echo $1
while read STRING
do
echo $STRING
done
awk (irá gerar argumento e segunda e terceira colunas de dados de entrada do arquivo)
#!/bin/bash
echo $1
awk '{print $2" "$3}'
e assim por diante. Você pode usar sed, cut e muitos outros utilitários Unix como nos exemplos. A escolha do utilitário depende de como você precisa transformar os dados de entrada. Claro que você pode alterar os exemplos como quiser.
Boa sorte =)
Responder2
No seu process_data.sh você pode escrever o código abaixo
while read line
do
#work on data
done < `cat input_data.txt`