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).
 

 Вам нужно будет авторизовать доступ к ezyZip в первый раз.