Script de shell como ler entrada de um arquivo [closed]

0

Eu preciso ler a entrada de um arquivo no seguinte formato.

$ ./process_data.sh arg1 < input_data.txt

Como leio input_data no meu script de shell process_data.sh ?

    
por Reko 17.04.2012 / 09:43

2 respostas

2

Nesse tipo de uso, existem várias maneiras de lê-lo: while construction (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 o argumento e a segunda e terceira coluna dos 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. Escolha de utilidade depende de como você precisa para transformar os dados de entrada. Claro que você pode mudar os exemplos como quiser.

Boa sorte =)

    
por 17.04.2012 / 09:56
1

Em seu process_data.sh, você pode escrever o código abaixo

while read line
do
   #work on data
done < 'cat input_data.txt'
    
por 05.09.2012 / 02:00