
Мне нужно прочитать входные данные из файла, заданного в следующем формате.
$ ./process_data.sh arg1 < input_data.txt
Как мне читать input_data
в моем скрипте оболочки process_data.sh
?
решение1
При таком использовании есть несколько способов его чтения: во время построения (будет выведен аргумент и каждая строка файла input_data.txt)
#!/bin/bash
echo $1
while read STRING
do
echo $STRING
done
awk (выведет аргумент, а также второй и третий столбцы входных данных файла)
#!/bin/bash
echo $1
awk '{print $2" "$3}'
и так далее. Вы можете использовать sed, cut и многие другие утилиты unix, как в примерах. Выбор утилиты зависит от того, как вам нужно преобразовать входные данные. Конечно, вы можете изменять примеры по своему усмотрению.
Удачи =)
решение2
В вашем process_data.sh вы можете написать следующий код
while read line
do
#work on data
done < `cat input_data.txt`