ファイルの2番目の列(ファイル2)の値が別のファイル(ファイル1)の2番目の列にあることを確認する簡単な方法はありますか?たとえば、関連行の横にアスタリスクを印刷する方法はありますか?可能であればawkを使用してください。
ファイル1
A 1,2,3,4
B 15,16,17
ファイル2
A 3
B 18
期待される出力:ファイル3
A 1,2,3,4 *
B 15,16,17
編集する ファイル2が次のような場合はどうですか?
A 3,8
B 18,19
しかし、予想される出力は同じままですか?
答え1
この試み:
$ awk '
FNR == NR {
a[$1] = $2;next
}
{
split(a[$1],b,",");
for (i in b) {
if ($2 == b[i]) {
printf("%s %s\t*\n",$1,a[$1]);
next;
}
}
print $1,a[$1];
}
' file1 file2
A 1,2,3,4 *
B 15,16,17
修正する
新しい入力で次のことを試してください。
$ awk '
FNR == NR {
a[$1] = $2;
next;
}
{
split($2,b,",");
split(a[$1],c,",");
for (i in b) {
if (b[i] in c) {
printf("%s %s\t*\n",$1,a[$1]);next;
}}
print $1, a[$1];
}
' file1 file2