Ключ заключается в использовании подстановки команд, если вы хотите, чтобы вывод команды был сохранен в переменной.
Оболочка POSIX (sh
):
while read -r LINE
do
abc=$(cut -d ',' -f 4 "$LINE")
done < "$INPUT_FILE"
Если выиспользуя устаревшую оболочку Bourne, используйте backticks вместо предпочтительных $()
:
abc=`cut -d ',' -f 4 "$LINE"`
В некоторых оболочках вам может не понадобиться внешняя утилита.
Bash, ksh, zsh:
while read -r LINE
do
IFS=, read -r f1 f2 f3 abc remainder <<< "$LINE"
done < "$INPUT_FILE"
или
while read -r LINE
do
IFS=, read -r -a array <<< "$LINE"
abc=${array[3]}
done < "$INPUT_FILE"
или
saveIFS=$IFS
while read -r LINE
do
IFS=,
array=($LINE)
IFS=$saveIFS
abc=${array[3]}
done < "$INPUT_FILE"