目标是解压缩许多zip文件并将结果文件重命名为原始存档名称。
给定一个包含许多zip文件的文件夹,其中大多数包含一个名为的文件bla.txt
,但是当然也有一些例外。众所周知,每个文件都有一个文件,即txt文件。
./zips/
a.zip - contains bla.txt
b.zip - contains bla.txt
c.zip - contains somethingelse.txt
d.zip - contains bla.txt
... - ...
输出应该是
./zips/
a.txt
b.txt
c.txt
d.txt
...
当前的最佳照片,它提取了所有内容,但给我留下了很多文件夹:
for z in *.zip; do unzip $z -d $(echo 'dir_'$z); done
也许像
for z in *.zip; do unzip $z; mv 'content_name.txt' $z; done
但是,如何获得内容名称?
您可以继续这个-d
想法,只需将任何提取的文件重命名为所需的“ zip名称减去zip加txt”即可:
mkdir tmp
for f in *.zip; do unzip "$f" -d tmp && mv tmp/* "${f%.zip}.txt"; done
rmdir tmp
或者,您可以通过管道将输出从解压缩到适当命名的文件中:
for f in *.zip; do unzip -p "$f" > "${f%.zip}.txt"; done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句