Я хочу отсортировать второй столбец перед его использованием. Можно применить команду sort между фигурными скобками или есть другой способ интеграции ее в сценарий bash. Я думал о сортировке file.txt в начале скрипта. Какие еще существуют простые способы сортировки перед перенаправлением в качестве ввода?
while IFS=, read var1 var2
do
//code//
done<(sort -t"," -k 2 file.txt)
(
и )
являются скобками, а не фигурными скобками, что будет {
и }
The Конструкция <(command)
называется подстановкой процесса и синтаксически эквивалентна файлу. Чтобы сделать его синтаксически эквивалентным перенаправлению из файла, вам нужен еще один оператор <
:
while IFS=, read var1 var2
do
//code//
done < <(sort -t"," -k 2 file.txt)
Другим распространенным способом сортировки, а затем перенаправления будет простой канал:
sort -t"," -k 2 file.txt | while IFS=, read var1 var2
do
//code//
done
Последний является более переносимым (подстановка процесса не является требованием POSIX и не поддерживается, например, /bin/sh
).