假设我有许多 csv 文件位于/home/user/test
123_24112021_DONG.csv
122_24112021_DONG.csv
145_24112021_DONG.csv
123_24112021_FINA.csv
122_24112021_FINA.csv
145_24112021_FINA.csv
123_24112021_INDEM.csv
122_24112021_INDEM.csv
145_24112021_INDEM.csv
Run Code Online (Sandbox Code Playgroud)
如您所见,所有文件都有三个唯一的前缀:
145
123
122
Run Code Online (Sandbox Code Playgroud)
而且,我需要为每个前缀创建 zip,其中将包含 csv 文件。请注意,实际上,我不知道 csv 文件的数量,这只是一个示例(每个前缀 3 个 csv 文件)。我开发了一个代码,可以从 bash 表中的所有 csv 名称中提取前缀:
for entry in "$search_dir"/*
do
# extract csv files
f1=${entry##*/}
echo $f1
# extract prefix of each file
f2=${f1%%_*}
echo $f2
# add prefix in table
liste_sirets+=($f2)
done
# get uniq prefix in unique_sorted_list
unique_sorted_list=($(printf "%s\n" "${liste_sirets[@]}" | sort -u ))
echo $unique_sorted_list
Run Code Online (Sandbox Code Playgroud)
结果如下:
145
123
122
Run Code Online (Sandbox Code Playgroud)
现在我想将由其前缀定义的每三个文件压缩在同一个 zip …
我有格式的数据,YYYYMM
我希望将其转换为YYYY-MM
格式.
例如: 201805
应采用的格式2018-05
我怎么能这样做?