gpt4 book ai didi

ubuntu - 如何解压缩已压缩两次的文件?

转载 作者:行者123 更新时间:2023-12-04 18:38:05 25 4
gpt4 key购买 nike

我收到了一组数据文件 (csv),这些文件已放入文件夹中,然后被压缩,然后合并到另一个 zip 存档中。如何将所有文件放到同一个目录中,同时确保不会创建两个具有相同名称的文件?

例如,

data.zip

包含
20141015.zip 
20141008.zip

20141015.zip
包含一个目录 20141015,其中有两个文件,
smith.csv
jones.csv

20141008.zip 包含一个目录 20141008,其中还有两个文件 smith.csv 和 johnson.csv
我想以一个目录结束,

解压缩数据,

这将包含
20141015-smith.csv
20141015-jones.csv
20141008-smith.csv
20141008-johnson.csv

This question给我展示了如何将一些文件夹中的所有文件解压到对应的文件夹中,但是我希望将所有文件放在一个文件夹中以简化进一步的操作,而且我也有两层压缩的问题要抗衡,而不仅仅是一层.

最佳答案

如果我了解您的需求,我认为这个脚本对您有好处。我在等你的评论。 :)

说明:创建 脚本.sh 并将脚本复制到所在的目录中数据.zip 文件。该脚本适用于任何名称的文件和任何名称的 csv。我为您的需要创建了一个通用脚本。如果您需要什么,请发表评论。

#!/bin/bash

currLoc="$PWD"
path="${currLoc}"

cd ${currLoc}

#EXTRACT THE FIRST ARCHIVE IN A TEMP DIRECTORY

for filename in $path/*;
do
extension="${filename##*.}"
if [ "${extension}" == 'zip' ]; then
unzip $filename -d $path/temp
fi

done

count=0

for filename in $path/temp/*;
do
extension="${filename##*.}" #EXTRACT THE EXTENSION TO COMPAIR IF IS AN ARCHIVE OR NOT
name=${filename##*/} #EXTRACT THE NAME OF ZIP FILE WITH EXTENSION
name=${name%.*} #EXTRACT THE NAME OF ZIP FILE WITHOUT EXTENSION
if [ "${extension}" == 'zip' ]; then
((count++))
unzip $filename -d $path/temp/$count
for file in $path/temp/$count/*
do
ext="${file##*.}"
if [ "${ext}" == 'csv' ]; then
csvFileName=${file##*/}
mv $path/temp/$count/$csvFileName $path/$name-$csvFileName
fi
done
fi
done

#REMOVE THE TEMP DIRECTORY
rm -r $path/temp

关于ubuntu - 如何解压缩已压缩两次的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com