【发布时间】:2021-08-31 12:38:04
【问题描述】:
我有一个配置文件,其中包含以下逗号分隔值。
jobA,table1,table2,table3
jobB,table4,table5,table6,table7
jobC,table8,table9
现在我想读取第 1 行的第一列,即一个变量中的 $1(jobA),并将相应作业的所有表 (table1,table2,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;
【问题讨论】:
-
请edit您的问题并添加更多详细信息。优普需要什么条件和处理?也许显示您的示例输入的预期输出。在
awk脚本中进行所有处理可能很容易。 -
您可以在一次调用
awk中完成您需要的一切——而不是在循环中调用awk。您可以轻松读取每行的第一个字段,然后从第二个到最后一个 ($NF) 字段进行迭代。重要的是您需要对每个字段做什么。
标签: linux bash shell unix scripting