пакетная печать awk из нескольких входных файлов в несколько выходных файлов

/usr/local/opt/coreutils/libexec/gnubinпоявляется в вашем PATHболее одного раза,поэтомуtype -aпросматривает его три раза и сообщает, что нашел lsтам для каждого из них.

Вы можете проверить свой PATH (echo "$PATH"), чтобы увидеть это, или манипулировать им, чтобы воспроизвести и изменить поведение:

PATH=/bin:/bin type -a ls
PATH=/usr/local/opt/coreutils/libexec/gnubin:/bin type -a ls

Где-то в настройках вашей среды переменная задается более одного раза, возможно, из-за запуска автоматизированного сценария, который несколько раз добавлял дополнительную строку PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH.

1
09.01.2021, 21:08
1 ответ

Вы должны сделать это в скрипте AWK вот так:

awk 'FNR == 1 { sub(/\.txt$/, "_2.txt", FILENAME) }  { print $(NF-3), $5 > FILENAME }' *.txt
2
18.03.2021, 22:37

Теги

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