Автоматически сохранять имя каталога внутри tar с помощью переменной

$ awk 'BEGIN {FS=":"} {comments[$1][NR]=$3} END {for (bug in comments) { print bug; for (comment in comments[bug]) { print "    ",comments[bug][comment] } } }  ' /path/to/input
Bug123
     SomeComment
     SecondComment
Bug222
     SomeOtherComment

Это работает путем создания многомерного -массива при чтении входного файла и последующего обхода результирующих данных в порядке появления «ошибок». С некоторыми небольшими изменениями это можно изменить для сортировки массива внешнего уровня -.

0
19.08.2019, 12:38
2 ответа

Далее предполагается, что вы работаете с архивом в текущем каталоге.

tar -x -f "$archivedir.tar"
mv "$archivedir" new-name

Предполагается, что переменная $archivedirсодержит имя архива tarбез суффикса .tarи что это также имя каталога, который будет создан при распаковке архива.

Распаковывает архив и переименовывает созданный каталог.

Если у вас есть имя файла архива tarв $tararchiveи если суффикс имени файла.tar(включен в значение$tararchive):

tar -x -f "$tararchive"
mv "$(basename "$tararchive".tar)" new-name

Бит "$(basename "$tararchive".tar)"можно заменить на "${tararchive%.tar}".

1
28.01.2020, 02:22

Я не уверен, что правильно понял ваш вопрос, но мне кажется вы ищете что-то вроде этого:

$ dir="$(tar tf archive.tar | cut -d / -f1 | uniq)"
$ echo "$dir"
tar-very-long-nime-very-very-long
2
28.01.2020, 02:22

Теги

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