Фон:

У меня 20 или около того tar-файлов примерно по 25G, каждый из которых содержит несколько миллионов файлов. Структура каталогов для этих файлов - это не тот формат, который нужен, поэтому я хочу это исправить. Из-за огромного объема, чем больше шагов я могу выполнить за один проход, тем лучше.

Что я пробовал:

Я надеялся сделать цикл по файлам tar, выполняющим это извлечение и преобразование:tar -xf TX.tar.001 --transform 's,^TX/([a-zA-Z][a-zA-Z]*_([0-9][0-9]-[0-9][0-9]-[0-9][0-9])_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.+\.[a-zA-Z][a-zA-Z]*),\2/\1,'

Однако tar выдает эту ошибку, о которой Google, похоже, знает очень мало: Invalid transform replacement: back reference out of range

Вопрос:

Какие-нибудь рекомендации, как убедить tar работать с моими обратными ссылками или сделать это другим способом, который сможет выполнить за разумное время?

1 ответ1

0

Попробуйте избежать скобок вокруг каждой группы:

tar -xf TX.tar.001 --transform 's,^TX/\([a-zA-Z][a-zA-Z]*_\([0-9][0-9]-[0-9][0-9]-[0-9][0-9]\)_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.+\.[a-zA-Z][a-zA-Z]*\),\2/\1,'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .