bash — Как объединить файлы .tab.gz в один файл gz, не повторяя заголовок столбца?
Задавать вопрос
спросил
Изменено 2 года, 6 месяцев назад
Просмотрено 224 раза
В настоящее время я использую этот простой cat
для объединения файлов gzip с разделителями табуляцией. Однако, поскольку оба имеют один и тот же заголовок столбца, я получаю один заголовок в начале файла и другой заголовок в середине, где он был объединен. Как я могу оставить только один заголовок для файла c.gz
без распаковки файлов?
Пример файлов:
a.tab
col1 col2 col3 1 2 3
б.вкладка
столбец 1 столбец 2 столбец 3 1 4 6
требуемый c. tab
col1 col2 col3 1 2 3 1 4 6
Что я пытаюсь: cat a.tab.gz b.tab.gz > c.tab.gz
Что я получаю в c.tab
:
col1 col2 col3 1 2 3 столбец1 столбец2 столбец3 1 4 6
- bash
- оболочка
- командная строка
Использование awk:
$ awk 'FNR>1||NR==1' <(gunzip -c a.tab.gz) <(gunzip -c b .tab.gz) | gzip > c.tab.gz
Вывод внутри c.tab.gz
:
col1 col2 col3 1 2 3 1 4 6
Редактировать : Другой awk:
$ zcat [ab].tab.gz | awk 'NR==1{h=$0;print}$0!=h' | gzip > c.tab.gz
, который исключает записи, идентичные первой записи первого несжатого файла, что может вызвать проблемы, если у вас есть заголовки в данных.
4(zcat a.tab.gz;awk 'NR>1 { print }' <(zcat b.tab.gz)) | gzip > c.tab.gz
Скомпонуйте содержимое a.tab.gz с помощью zcat, а затем перенаправьте вывод zcat b.
То же решение с заголовками обработки sed:
(zcat a.tab.gz;sed -n '2,$p' <(zcat b.tab.gz )) | gzip > c.tab.gz1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается

Конвертировать TAR.GZ в AB онлайн. Быстро, безопасно и БЕСПЛАТНО!
- ?
Ниже приведены шаги по преобразованию архива в файл(ы) AB с помощью ezyZip:
- Чтобы выбрать файл tar.gz, у вас есть два варианта: архив TAR.GZ.
Нажмите зеленую кнопку «Сохранить», чтобы сохранить отдельный файл ab на локальный диск.
Сначала следуйте приведенным выше инструкциям
- Нажмите «Сохранить все». Если кнопка отключена, это означает, что ваш браузер не поддерживает эту функцию или она не включена.
В Chrome вы можете включить его, переключив следующие настройки:
chrome://flags/#native-file-system-api
(скопируйте/вставьте его в адресную строку браузера) Выберите пустую папку , куда вы хотите извлечь файлы. Обратите внимание: если у вас уже есть файлы с таким именем, ezyZip ПЕРЕЗАПИСЫВАЕТ ИХ .
После выбора папки браузер запросит разрешение на доступ к ней. Нажмите «Просмотреть файлы», а затем «Сохранить изменения».
Затем начнется сохранение файлов и подпапок в указанную вами цель.
Появится окно выбора файлов Dropbox.
Вам нужно будет авторизовать доступ к ezyZip в первый раз.
После того, как вы выбрали файл tar.gz, он загрузит его в ваш браузер и покажет содержимое.
- Чтобы сохранить файлы ab в Dropbox, щелкните раскрывающийся список «Dropbox» под кнопками «Сохранить» или «Сохранить все». Вам нужно будет авторизовать Dropbox для ezyZip в первый раз, когда вы это сделаете.
Файлы будут сохранены в папке /Apps/ezyZip .
Убедитесь, что вы используете последнюю версию одного из популярных браузеров или их вариантов. (например, Chrome, Firefox, Safari, Opera).