LINUX.ORG.RU

История изменений

Исправление legolegs, (текущая версия) :

Можно ещё так:

readarray HASLABEL < <(tar --test-label < t.tar)
awk -v skip=${#HASLABEL[@]} 'NR>skip && !/\/$/'

PS интересные факты:

  1. метка достается за О(1) даже из огромных сжатых архивов.
  2. tar не даёт поставить многострочную метку (экранирует сам).

PPS вариант с comm мне всё ещё нравится больше, он короче и «лишний» вызов тоже один. Подумать только, что задача «достать список файлов из архива» не такая тривиальная.

Исправление legolegs, :

Можно ещё так:

readarray HASLABEL < <(tar --test-label < t.tar)
awk -v skip=${#HASLABEL[@]} 'NR>skip && !/\/$/'

PS интересные факты:

  1. метка достается за О(1) даже из огромных сжатых архивов.
  2. tar не даёт поставить многострочную метку (экранирует сам). PPS вариант с comm мне всё ещё нравится больше, он короче и «лишний» вызов тоже один. Подумать только, что задача «достать список файлов из архива» не такая тривиальная.

Исходная версия legolegs, :

Можно ещё так:

readarray HASLABEL < <(tar --test-label < t.tar)
awk -v skip=${#HASLABEL[@]} 'NR>skip && !/\/$/'

PS интересные факты:

  1. метка достается за О(1) даже из огромных сжатых архивов.
  2. tar не даёт поставить многострочную метку (экранирует сам).