我的数据集(data.txt)看起来像这样[imageID,sessionID,height1,height2,x,y,crop]:
1,0c66824bfbba50ee715658c4e1aeacf6fda7e7ff,1296,4234,194,1536,0
2,0c66824bfbba50ee715658c4e1aeacf6fda7e7ff,1296,4234,194,1536,0
3,0c66824bfbba50ee715658c4e1aeacf6fda7e7ff,1296,4234,194,1536,0
4,0c66824bfbba50ee715658c4e1aeacf6fda7e7ff,1296,4234,194,1536,950
这些是我想要使用的一组值。我是shell脚本的新手:)我像这样逐行读取文件,
cat $FILENAME | while read LINE
do
string=($LINE)
# PROCESSING THE STRING
done
现在,在上面的代码中,获取字符串后,我希望执行以下操作: 1.将字符串拆分为逗号分隔值。 2.将这些变量存储到像imageID [],sessionID []。
这样的数组中我需要使用imagemagick访问这些值以进行图像处理。 但是,我无法正确执行上述步骤
答案 0 :(得分:6)
set -A
对我不起作用(可能是因为OSX上的旧版BASH)
使用read -a
发布备用解决方案以防有人需要:
# init all your individual arrays here
imageId=(); sessionId=();
while IFS=, read -ra arr; do
imageId+=(${arr[0]})
sessionId+=(${arr[1]})
done < input.csv
# Print your arrays
echo "${imageId[@]}"
echo "${sessionId[@]}"
答案 1 :(得分:1)
oIFS="$IFS"; IFS=','
set -A str $string
IFS="$oIFS"
echo "${str[0]}";
echo "${str[1]}";
echo "${str[2]}";
你可以像这样拆分和存储
在Unix阵列上查看更多here。