2017-06-22 51 views
-2

我正在嘗試通過兩個文件。首先一行一行,用awk搜索包含從第一個文件中提取的字符串的行。使用awk嘗試在CSV行中查找變量

while IFS=, read col1 col2 col3 
do 
    echo $(awk -F, -v var="$col2" '$2==var || $2=="www."var {print $0}' searchFile.csv) 
    //do stuff with data from awk 
done < origFile.csv 

我試圖在這個文件中找到域名,而awk目前從未返回匹配。我已經手動檢查了這些文件,以確保一些沒有返回的匹配在兩者中,而且都是。

我已經嘗試過使用嵌套循環,但bash不想打開第二個文件來閱讀並且不會讀取第二個文件。我也嘗試使用grep,但是這些文件太大,grep會耗盡內存。對於searchFile.csv

樣品輸入:

4915,google.com,oct 
3532,domain.ca,nov 
33451,yahoo.ca,nov 

我已經確保有數據沒有空格被輸入,並且已經證實,從origFile.csv $ COL2在searchFile.csv

匹配數據
+1

您應該從正在解析的文件中發佈一行或兩個正在匹配的行。 – SaintHax

+0

請發佈樣本輸入和樣本輸出.. – sjsam

+0

我更新了輸入,代碼沒有輸出。 –

回答

-2

你的數據文件是否有空格?如果是這樣,你的記錄($ 2)將有空格並且可能不匹配(因爲你正在使用awk -F)。試着用〜而不是==來匹配。

+0

源數據中沒有空格,並用逗號分隔。 –

+1

@Justin,使用註釋提問,而不是回答:-) – SaintHax