Как отсортировать файл перед его перенаправлением как ввод в сценарий bash?

Я хочу отсортировать второй столбец перед его использованием. Можно применить команду sort между фигурными скобками или есть другой способ интеграции ее в сценарий bash. Я думал о сортировке file.txt в начале скрипта. Какие еще существуют простые способы сортировки перед перенаправлением в качестве ввода?

while IFS=, read var1 var2
do
//code//
done<(sort -t"," -k 2 file.txt)
0
задан 14 December 2020 в 00:45

1 ответ

( и ) являются скобками, а не фигурными скобками, что будет { и }

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).

2
ответ дан 13 December 2020 в 22:02

Другие вопросы по тегам:

Похожие вопросы: