【发布时间】:2017-04-03 03:22:58
【问题描述】:
我正在使用一个管道分隔列表(文本文件),它看起来像
recipename|category|list_items
-------------------------------------------
veg_quesadilla|groupA|lettuce, spinach, beans
burrito_bowl|groupA|brown_rice, black_beans, lettuce, pepper
french_fries|groupB
beverage|groupC|pepsi
我有以下声明
for recipename in `head -4 list_catalog.txt | awk -F "|" '{print $1}'`
do
if [ `cat list_catalog.txt | grep $recipename | awk -F "|" '{print $3}'` != NULL ]
then
for list_items in `cat list_catalog.txt | grep $recipename | awk -F "|" '{print $3}'`
do
echo -e ${list_items}
done
fi
done
在第一个循环中,我遍历每个配方名称,并检查每个配方是否存在 list_items。如果是,那么我想将所有列分隔的项目打印为一个字符串,而不是单独的项目。我的意思是所有逗号分隔的项目(在第二个管道符号之后开始)作为一个字符串
像这样:
lettuce, spinach, beans
代替:
lettuce,
spinach,
beans
当我运行代码时出现错误,
line 3: [: too many arguments
不确定,我是否正确使用 AWK。请纠正我。
【问题讨论】: