如何解决从逗号分隔的文件中读取值并使用 shell 脚本在循环中传递值
jobA,table1,table2,table3
jobB,table4,table5,table6,table7
jobC,table8,table9
现在我想读取第 1 行的第一列,即一个变量中的 $1(jobA) 以及单独变量中相应作业的所有表 (table1,table3) 作为列表,并在循环中迭代此列表。类似的事情应该一直持续到文件结束,即 jobN ..我尝试了下面的代码但没有奏效。我是新手,任何建议都会非常有帮助。
#!/bin/bash
JOBS=$(awk -f\,'(print $1}' a.config)
declare -p JOBS
for jobs in "${List[@]}"
do
if [[somecondition]];then
else
fi
TABLES=$(awk -f\,'{for(i=2;i<=NF;++i)print $i}' a.config)
declare -p TABLES
for tables in ${list[@]}
do
if [[somecondition]];then
else
fi
done
done
exit 0;
解决方法
while read line; do
job_name=$(echo "$line"|awk 'BEGIN{FS=","}{print $1}')
echo "JobName is $job_name"
# remove the jobname from the string
tablestring=${line#"$job_name"}
# Iterate over the remaining string
for table in ${tablestring//,/ }; do
echo $table
done
done<jobfile
输出:
$ bash script.sh
JobName is jobA
table1
table2
table3
JobName is jobB
table4
table5
table6
table7
JobName is jobC
table8
table9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。