Почему я получаю неожиданный конец файла в моем скрипте при использовании gzip?

У меня есть одно сомнение в этом:

for i in ./*.gz do gunzip -c $i | head -8000 | gzip > $(basename $i) done 

Я получаю ошибку «неожиданный конец файла» для gzip, и я не получаю 8000 вообще, всего несколько десятков строк. Я проверил целостность моих файлов, и они в порядке. Любопытно, если я запускаю отдельные файлы:

 gunzip -c file1.gz | head -8000 | gzip > file1.gz 

Я получаю ожидаемый результат. С помощью этого сценария я могу получить первые 8000 строк из сжатого файла с линиями 10708712 и снова сжать. Новый файл перезаписывает исходный файл, но все в порядке.

  • Запуск скрипта во время загрузки / запуска; init.d vs cron @reboot
  • Удалите сразу несколько файлов с определенным форматированием
  • Сценарий Bash / Mysql
  • Решение целочисленного выражения ожидается
  • Как комментировать snmpmibd и snmpd в rc.tcpip в AIX с помощью sed?
  • В чем разница между POSIX и bash и другими сценариями оболочки?
  • Измените существующую установку dovecot maildir с charset m-UTF7 на UTF8, чтобы избежать нарушения TAB
  • sed: -e выражение # 1, char 4: неизвестная команда:
  • One Solution collect form web for “Почему я получаю неожиданный конец файла в моем скрипте при использовании gzip?”

    Вы должны записать вывод во временный файл, а затем переименовать:

     for i in ./*.gz do gunzip -c "$i" | head -8000 | gzip > "$i.tmp" mv -f "$i.tmp" $(basename "$i") done 

    Иногда ваша версия работает, если вы достаточно gunzip буферов во время чтения.

    Interesting Posts

    bash prompt – длинный командный круг обратно в ту же строку после добавления цвета

    Как создать функцию для заполнения области до определенной ширины?

    Сделать windowmanager / desktop (Gnome) использовать только часть разрешения сервера X11 (Xvfb)

    Как создать виртуальную машину с существующего сервера PreRelease FreeBSD 8.2?

    Виртуальный бокс с хостом / гостевой неделей с NFS

    Что может заставить vim не сохранять историю команд?

    Как настроить заголовки электронной почты с помощью / usr / bin / mail?

    Почему итерация по файлу в два раза быстрее, чем чтение в память и вычисление в два раза?

    Как заставить эмуляторы терминала использовать на экране HiRes?

    Когда система Linux (Ubuntu) отключается, какие процессы отправляются SIGTERM?

    Обновление Centos до 6.5 не 6.6?

    Найти все базы данных postgresql и mysql в системе

    Intel, DVMT & Linux: вопрос

    Многоадресная многоадресная рассылка AIX

    поиск файла внутри скрипта

    Linux и Unix - лучшая ОС в мире.