Я хотел бы знать, как искать определенный шаблон файлов (GunZip Files) во всех подкаталогах (месяц мудрый/Дата мудрый - созданные подкаталоги). И затем выполните сценарий по найденным файлам. Также необходимо заполнить FILENAME вместе с выходом для отслеживания и дальнейшего анализа этих файлов.Поиск файлов и запуск сценария для каждого результата - Cont:
Шаг1: Например: в настоящее время поиск файлов по этому шаблону TT_DETAIL * .gz.
find /cygdrive/c/Test/ -name TT_DETAIL*.gz
выход # 1:
/cygdrive/c/Test/Feb2014/TT_DETAIL_20141115.csv.gz
/cygdrive/c/Test/Jan2014/TT_DETAIL_20141110.csv.gz
/cygdrive/c//Test/Mar2014/TT_DETAIL_20141120.csv.gz
Шаг2:
zcat TT_DETAIL*.gz | awk 'BEGIN { FS=OFS=","} { if ($11=="10") print $2,$3,$6,$10,$11,$17}' >Op_TT_Detail.txt
кошка Op_TT_Detail.txt
ZZZ,AAA,ECH,1,10,XXX
ZZZ,BBB,ECH,1,10,XXX
ZZZ,CCC,ECH,1,10,XXX
ZZZ,DDD,ECH,1,10,XXX
fedorqui
Спасибо за ниже скрипт работает нормально без FILENAME.
while IFS= read -r file
do
awk 'BEGIN { FS=OFS=","} { if ($11=="10") print $2,$3,$6,$10,$11,$17}' <(zcat "$file") >>Op_TT_Detail.txt
done < <(find /cygdrive/c/Test/ -name TT_DETAIL*.gz)
Пытались ниже команды, чтобы заполнить FILENAME вместе с выходом для отслеживания цели:
while IFS= read -r file
do
awk 'BEGIN { FS=OFS=","} { if ($11=="10") print $2,$3,$6,$10,$11,$17,FILENAME}' <(zcat "$file") >>Op_TT_Detail.txt
done < <(find /cygdrive/c/Test/ -name TT_DETAIL*.gz)
Желаемая Выход:
ZZZ,AAA,ECH,1,10,XXX,/cygdrive/c/Test/Feb2014/TT_DETAIL_20141115.csv.gz
ZZZ,BBB,ECH,1,10,XXX,/cygdrive/c/Test/Feb2014/TT_DETAIL_20141115.csv.gz
ZZZ,CCC,ECH,1,10,XXX,/cygdrive/c//Test/Mar2014/TT_DETAIL_20141120.csv.gz
ZZZ,DDD,ECH,1,10,XXX,/cygdrive/c//Test/Mar2014/TT_DETAIL_20141120.csv.gz
Поскольку FILENAME не работает * .gz файлов, должны Я пишу «find /cygdrive/c/Test/ -name TT_DETAIL*.gz
» в другой выходной файл , затем вызывается этот выходной файл в скрипт, у меня нет доступа на запись для исходных файлов, расположенных ser веры.
Ищет ваши предложения !!!
Вы задали много вопросов об awk, и все же вы все время выполняете абсолютные новички, такие как помещение условия в блок действий. Сценарии Awk записываются как 'awk ' {}'', а не 'awk '{if () }', и я ЗНАЮ, что у вас были предыдущие ответы, показывающие вам, как передать значение переменных оболочки в awk-скрипты , Нам бессмысленно давать ответы, если вы ничего не узнаете от них. –