大家。 我有 CSV 文件,其中包含约 150 万个字符串,其中包含“ArchiveName”列,并且我正在尝试使用脚本解压缩每个存档:
#!/bin/bash
csvPath=/any/folder/ArchiveName.csv
archiveFolderPath=/any/archives
cd $archiveFolderPath
while IFS=";" read -r ArchiveName
do
unzipPath=/any/unzip
sudo unzip "${ArchiveName}" -d "${unzipPath}"
done < <(tail -n +1 $csvPath)
当我启动脚本时 - 收到错误“参数列表太长”
我尝试将 csv 文件剪切为 5k 字符串,但仍然不起作用.. 我如何更改脚本或 csv 使其生效?
“参数列表太长”意味着:您传递给
sudo unzip "${ArchiveName}" -d "${unzipPath}"
的字符串之一太长(不是:您的 csv 中有太多行)。
调试该问题的一种方法是检查传递给命令的值:
echo "unzipping ${ArchiveName} ..."
sudo unzip "${ArchiveName}" -d "${unzipPath}"