我想知道使用for循环读取csv文件时单独访问每个列(f1,f2,f3)的语法
for(i=1;i<=NF;i++)
printf "<TD>%s</TD>", $i
我不能使用while格式,因为我在&#34; awk&#34;中编写了上述代码。命令和文件名稍后指定。请告诉我如何修改上面的代码以单独访问每个列,因为我需要在if语句中访问它。
上面的代码正在访问整行。例如; -
Keys,YES,565
Adam,NO,980
Shannon,YES,980
我想访问第二列并使用它在awk中放入if条件。 if($ f2 =&#34; NO&#34;)。这也可以使用上面的代码完成吗?
将替换以下部分代码以将输出作为html文件
for(i=1;i<=NF;i++)
printf "<TD>%s</TD>", $i
print "</TR>" }
答案 0 :(得分:0)
由于这个问题很模糊,我只能猜一个答案。您需要使用适当的字段分隔符:
awk -F',' '{ print $2 }' some_file
答案 1 :(得分:0)
尝试这样的代码。
CSV_FILE=a.csv
DATA=$(cat ${CSV_FILE})
for line in $DATA ;do
ELEMENT=`echo $line | awk -F "\"*,\"*" '{print $3}'`
echo $ELEMENT
##You have your if condition here##
done