2つのファイルがあり、最初のファイルは次のとおりです。
値.txt
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
データ.csv
"username","email"
"user","[email protected]"
"user1","[email protected]"
"user2","[email protected]"
"user4","[email protected]"
"user456","[email protected]"
"user789","[email protected]"
"user5","[email protected]"
"user","[email protected]"
"user5","[email protected]"
"user","[email protected]"
出力が次のようになります。
"user","[email protected]"
"user1","[email protected]"
"user2","[email protected]"
"user4","[email protected]"
"user5","[email protected]"
"user5","[email protected]"
どうして:
awk -F',' '$2 ~ /[email protected]/ {print $0}' data.csv > test1.csv
これにより、以下を含む新しいファイルtest1.csvが作成されます。
"user5","[email protected]"
[email protected]
ファイルを繰り返し、value.txt行に置き換える方法がわかりません。
答え1
awk -F, '
NR==FNR{ a["\""$1"\""]; next }
$2 in a
' values.txt data.csv
最初の入力ファイル:各フィールドを配列に保存し、a
各キーにプレフィックス/サフィックスを追加します"
。録音を続けてくださいnext
。
2番目の入力ファイル:2番目のフィールドが配列にあるかどうかをテストしますa
。条件がtrueの場合、デフォルトのアクションはレコードを印刷することです。