2017-04-13 144 views
0

我想知道的單獨訪問每個列(F1,F2,F3)在閱讀使用for循環訪問使用for循環

for(i=1;i<=NF;i++) 
printf "<TD>%s</TD>", $i 

csv文件的語法從UNIX腳本CSV文件中的每一列我不能使用while格式,因爲我正在使用「awk」命令編寫上述代碼,並且稍後指定文件名。請讓我知道如何修改上面的代碼來訪問每個列,因爲我需要在if語句中訪問它。

上述代碼正在訪問整行。例如; -

Keys,YES,565 
Adam,NO,980 
Shannon,YES,980 

我想訪問第二列並使用它在awk中放置if條件。如果($ f2 =「NO」)。這也可以使用上面的代碼完成?

是替代的代碼下面的部分,以使輸出爲HTML文件

for(i=1;i<=NF;i++) 
printf "<TD>%s</TD>", $i 
print "</TR>" } 
+0

那麼,這是__訪問每個列individual_代碼。除此之外,您需要更具體地瞭解您的需求。 –

+0

上述代碼正在訪問整行。例如; - Keys,YES,565 Adam,NO,980 Shannon,YES,980 我想訪問第二列並使用它在awk中放入if條件。如果($ f2 =「NO」)。這也可以使用上面的代碼完成? –

+0

請只顯示您的預期輸出。 –

回答

0

因爲這個問題很模糊,我只能猜測一個答案。您需要使用相應的字段分隔符:

awk -F',' '{ print $2 }' some_file 
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