Извлечение файла.tar и создание списка файлов
У меня есть этот маленький код здесь
for file in *.tar.gz;
do tar xzvf "${file}" && rm "${file}";
done
Он извлекает tar.gz и удаляет его. Теперь мне нужно создать файл списка файлов (.fl) с именем как подстрока из.tar. Например, я должен удалить первые 5 букв и последние 5 (расширение) из имени.tar.gz . И это для каждого.tar.gz, который я извлекаю.
Пример:
- У меня есть ABC_A.tar.gz с ABC_A.xml в нем.
- Я должен сделать A.fl и в этом A.fl я должен написать ABC_A.xml
Заранее спасибо.
2 ответа
Решение
В вашем цикле вы можете сделать следующее для каждого файла:
# delete first five characters
name=${file:5}
# delete .tar.gz suffix
name=${file%%.tar.gz}
Использование
for file in *.tar.gz
do
# this creates the file list into a .fl file:
tar tfz "${file}" > "${file:5:-5}.fl"
# this extracts and afterwards removes the tar archive:
tar xzvf "${file}" && rm "${file}"
done
Вы также можете объединить два в один шаг:
for file in *.tar.gz
do
tar xzvf "${file}" > "${file:5:-5}.fl" && rm "${file}"
done