我想编写一个Shell脚本,以便将给定目录中所有以.tif结尾的文件及其所有子目录都写到一个csv文件中。
该目录包含各种子目录,这些子目录也可以包含.zip文件夹,因此该脚本也应该能够从zip文件夹中提取名称。
我首先考虑过分离这些步骤(解压缩并获取文件名),但是我不确定这是否真的必要。
由于我对使用Shell真的很陌生,因此不胜感激。
要搜索.tif
文件夹及其子文件夹中的文件,然后将输出写入.csv
文件中,可以使用以下命令:
find /path/to/folder -iname '*.tif' -type f >tif_filenames.csv
要也在.zip
文件内部搜索并将输出附加到先前的tif_filenames.csv
文件,可以使用:
find /path/to/folder -iname '*.zip' -type f -exec unzip -l '{}' \; | process
process
以下bash函数在哪里:
function process() {
while read line; do
if [[ "$line" =~ ^Archive:\s*(.*) ]] ; then
ar="${BASH_REMATCH[1]}"
elif [[ "$line" =~ \s*([^ ]*\.tif)$ ]] ; then
echo "${ar}: ${BASH_REMATCH[1]}"
fi
done
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句