Я получил эти файлы:zcat в цикл
bonds.txt.gz
bonds_201307.txt.gz
bonds_201308.txt.gz
bonds_201309.txt.gz
bonds_201310.txt.gz
bonds_201311.txt.gz
bonds_201312.txt.gz
У меня есть цикл, чтобы пройти через файлы, распаковать их и найти строку с Grep:
for f in `ls *.txt.gz`; do echo $f; zcat $f | grep MYBOND; done
Если Я бегу это я получаю следующее:
bonds.txt.gz
zcat: bonds.txt.gz.gz: No such file or directory
bonds_201307.txt.gz
zcat: bonds_201307.txt.gz.gz: No such file or directory
bonds_201308.txt.gz
zcat: bonds_201308.txt.gz.gz: No such file or directory
bonds_201309.txt.gz
zcat: bonds_201309.txt.gz.gz: No such file or directory
bonds_201310.txt.gz
zcat: bonds_201310.txt.gz.gz: No such file or directory
bonds_201311.txt.gz
zcat: bonds_201311.txt.gz.gz: No such file or directory
bonds_201312.txt.gz
zcat: bonds_201312.txt.gz.gz: No such file or directory
Похоже zcat расширяет имя файла с дополнительным .gz Howe ver его не делать, когда я пытаюсь zcat файл из командной строки просто подбирает имя файла, которое предоставляется и выполняет свою работу. Почему это происходит при вызове в цикле?
Я знаю, что могу достичь того же, используя zgrep или find, но все еще заинтересованный в понимании этого поведения zcat. Спасибо!
Какую версию 'zcat' вы используете? 'zcat --version' – imp25
версия:' zcat 1.3.5' – LWNirvana