我正在尝试读取csv文件中的每个列,然后使用csv上的列中的数据搜索目录。读完所有行后,我想创建一个新目录,将文件复制到该目录,最后压缩目录。关于如何做的任何想法?
以下是CSV文件的示例:
add an example here...
答案 0 :(得分:1)
我不知道,如果你想以不同的方式处理每一列,但如果没关系,这里是脚本的划痕。
separator=";" # select separator type in your csv file
csv_file="`pwd`/file.csv" # path to your csv file
search_dir="`pwd`/searchdir" # directory, where we search for files, that are in csv files
copy_to_dir="`pwd`/newdir" #directory where to save copied files
mkdir $copy_to_dir #making copy dir
for i in `cat ${csv_file} | tr $separator '\n'` ; do # reading all the entries in csv file
find $search_dir -name "$i" | xargs -i cp {} $copy_to_dir
# assuming, that all entries in csv are files to be found in a dir and copied
done
zip -j -r copied_files.zip $copy_to_dir # zip found contents
rmdir $copy_to_dir # if you need just the zip file
答案 1 :(得分:0)
这是基于您提供的信息的脚本草稿:
destdir="/path/to/destination/directory"
filelist=""
while IFS=, read col1 col2 col3 col4 ...
do
# check if the file should be included in filelist
if [ ... ]; then
filelist+="$col1/$col2/$col3.$col4 "
fi
if [ ! -z "$filelist" ]; then
mkdir -p $destdir
for goodfile in $filelist; do
cp $goodfile $destdir
done
fi
done < file.csv
为了使事情更清楚,我假设CSV文件中的列只是您感兴趣的文件的路径和名称的一部分。 希望这可以帮助。 :)