2017-06-22 17 views
-2

2つのファイルを調べようとしています。まず最初に1行ずつ、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は2番目のファイルを開いて2番目のファイルを読み込もうとしませんでした。私もgrepを使ってみましたが、ファイルが大きすぎてgrepが不足してしまいます。 searchFile.csvため

サンプル入力:

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

Iが入力されたデータにスペースが含まれていない確保している、とorigFile.csvからの$ COL2がsearchFile.csv

内のデータと一致していることを確認しました
+1

解析するファイルから一致する行を1つまたは2つ投稿してください。 – SaintHax

+0

サンプル入力とサンプル出力を投稿してください。 – sjsam

+0

私は入力を更新しましたが、そのままコードからの出力はありません。 –

答えて

-2

データファイルにスペースがありますか?もしそうなら、あなたのレコード($ 2)は空白を持ち、(awk -Fを使っているので)一致しないかもしれません。 ==の代わりに〜で照合してみてください。

+0

ソースデータには空白がなく、コンマで区切られています。 –

+1

@Justin、Answersの代わりにコメントを使って質問する:-) – SaintHax

関連する問題