Как разобрать многострочный файл и выполнить некоторые операции для каждой строки токена в bash?


Скажем, у нас есть tsv-файл

1    2    3
1    2    3

Мы хотим сделать некоторую операцию, скажем echo $1 $2 $3 для каждой строки файла tsv.

Как сделать такую вещь в Баш?

1 3

1 ответ:

Это может сделать его:

while read -r a b c
do
   echo "first = $a second = $b third = $c"
done < file

Тест

$ while read -r a b c; do echo "first=$a second=$b third=$c"; done < file
first=1 second=2 third=3
first=1 second=2 third=3

Поскольку разделитель является вкладкой, вам не нужно использовать IFS. Если бы это было, например, |, Вы могли бы сделать:

$ cat file
1|2|3
1|2|3
$ while IFS='|' read -r a b c; do echo "first=$a second=$b third=$c"; done < file
first=1 second=2 third=3
first=1 second=2 third=3