Насколько распространена поддержка tar для распаковки tar с длинными именами (100+ символов )?

Предполагая, что ключ является 4-м полем, а записи с одинаковыми ключами идут последовательно (и я правильно понял ваш вопрос ), вы можете сделать что-то вроде:

perl -lane '
  $na = grep {$_ eq "NA"} @F;

  if ($F[3] eq $last_key) {
    if ($na < $min_na) {
      $min_na = $na; $min = $_
    }
  } else {
    print $min unless $. == 1;
    $last_key = $F[3]; $min = $_; $min_na = $na;
  }
  END{print $min if $.}' < your-file

Какая из последовательных строк с одним и тем же 4-м полем выводит первую с наименьшим числом NAполей.

Если они не идут подряд, вы можете использовать некоторую сортировку:

< yourfile awk '{for (i=n=0;i<NF;i++) if ($i == "NA") n++; print n, $0}' |
  sort -k5,5 -k1,1n |
  sort -muk5,5 |
  cut -d ' ' -f 2-

С помощьюbusyboxsortвы захотите добавить параметр -sко второму вызову, так как он, кажется, снова выполняет некоторый уровень сортировки ввода, несмотря на -m.

-1
27.10.2020, 10:55
1 ответ

Я только что успешно запаковал и распаковал tar-архив, содержащий:

touch $(for i in {1..222}; do echo -n a; done)

file test.tar 
test.tar: POSIX tar archive (GNU)

Таким образом, в Linux не должно быть проблем, по крайней мере, в Fedora 32.7z/WinRAR оба открывают один и тот же архив и успешно извлекают файл.

Что касается Commons -Расширение/формат сжатия Понятия не имею, так какhttp://www.gnu.org/software/tar/manualне имеет ничего подобного.

Может быть, поделитесь таким архивом, чтобы можно было его протестировать?

0
18.03.2021, 22:54

Теги

Похожие вопросы