Скрипт оболочки, как читать входные данные из файла

Скрипт оболочки, как читать входные данные из файла

Мне нужно прочитать входные данные из файла, заданного в следующем формате.

$ ./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`

Связанный контент