Извините, этот вопрос тривиален, но я не смог заставить его работать: у меня есть папка с файлами .zip, каждый файл .zip содержит ровно один файл .xml. Zip-файлы имеют разумные имена, такие как .zip и т.д., В то время как .xml-файл, содержащийся в них, имеет "случайное имя" .xml.

Теперь я хочу , чтобы распаковать все файлы .zip в папку, сохраняя имя файла .zip файлов, так что .zip получает распакованы в .xml, б.zip в б.xml и т.д. ...

Мне удалось добиться пакетной распаковки только с помощью команды:

for z in *.zip; do unzip "$z"; done Как я могу улучшить это, чтобы сохранить имена?

1 ответ1

0

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

for z in *.zip; do
   unzip $z
   mv *.xml `echo $z | sed "s/\.zip$/.xml/"`
done

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