Shell script como ler a entrada de um arquivo

Shell script como ler a entrada de um arquivo

Preciso ler a entrada de um arquivo fornecido no seguinte formato.

$ ./process_data.sh arg1 < input_data.txt

Como leio input_datameu 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`

informação relacionada