
Necesito leer la entrada de un archivo proporcionado en el siguiente formato.
$ ./process_data.sh arg1 < input_data.txt
¿Cómo leo input_data
en mi script de shell process_data.sh
?
Respuesta1
En tal uso, hay varias formas de leerlo: durante la construcción (generará el argumento y cada cadena del archivo input_data.txt)
#!/bin/bash
echo $1
while read STRING
do
echo $STRING
done
awk (generará el argumento y la segunda y tercera columna de datos de entrada del archivo)
#!/bin/bash
echo $1
awk '{print $2" "$3}'
etcétera. Puede utilizar sed, cut y muchas otras utilidades de Unix como en los ejemplos. La elección de la utilidad depende de cómo necesite transformar los datos de entrada. Por supuesto, puedes cambiar los ejemplos como quieras.
Buena suerte =)
Respuesta2
En su process_data.sh puede escribir el siguiente código
while read line
do
#work on data
done < `cat input_data.txt`