У меня есть большое количество файлов с несколькими столбцами, которые нужно быстро преобразовать в файлы меньшего размера по столбцу. Самый быстрый способ, который я нашел для этого (пока), заключается в следующем:
gawk '{print $3, $2 >> "period.chidrop"; print $4, $2 >> "Tconj.chidrop"; print $5, $2 >> "oc.chidrop"}' generation.1*
Моя проблема в том, что действие должно быть динамическим, но я не могу заставить переменную работать как все действие.
Пример:
gawkcmd='print $3, $2 >> "period.chidrop"; print $4, $2 >> "Tconj.chidrop"; print $5, $2 >> "oc.chidrop"'
gawk -v gawkcmd="$gawkcmd" '{gawkcmd}' generation.1*
Это выполняется без сообщения об ошибке, но файлы не создаются. Я могу напечатать строку:
gawk -v gawkcmd="$gawkcmd" 'BEGIN{print gawkcmd}{gawkcmd}' generation.1*
но команда не будет выполняться в рамках действия. Что я упускаю из виду?