Как насчет:
awk '/name/{n+=1}{print > "file_"n".txt"}'
Что даст file_1.txt
, file_2.txt
... и т.д.
Проблема с использованием &
для запуска команд в фоновом режиме заключается в том, что оболочка автоматически закрывает стандартный ввод для этой команды. Таким образом, ваш cat -
сразу читает конец -файла -. В качестве обходного пути вы можете, например, продублировать файловый дескриптор с 0 на 3 и использовать этот:
...
else exec 3<&0
cat - <&3 \
| tee >(get_1 ${col1}) \
...