Выполнить скрипт для каждой строки входного файла
У меня есть текстовый файл с 100 строк и 5 столбцов. Я хочу автоматизировать сценарий с чтением файла каждой строки, сделать первый столбец первым аргументом, второй столбец вторым аргументом и т. Д. Как можно решить эту проблему?
1 ответ
Трудно быть окончательным без реального примера от вас, но вы можете использовать форму массива встроенной в оболочку bash read
функционировать что-то вроде:
while read -ra arr; do cmd "${arr[@]}"; done < file
Ex. дали файл
$ cat file
foo some arg 3
bar otherarg 5 -o bar
baz "arg with spaces" -99
тогда
$ while read -ra arr; do echo cmd "${arr[@]}"; done < file
cmd foo some arg 3
cmd bar otherarg 5 -o bar
cmd baz "arg with spaces" -99
В качестве альтернативы, если ваши аргументы команды просты (без кавычек, например), вы можете попробовать xargs
например
xargs -L1 -a file cmd