ファイル1以下のように多くの数字が含まれています。
345656565465
783329439432
345656565465
783329439432
.......
ファイル2:
345656565465;ram;dfdfdf54532fdf;...............................
783329439432;sam;dfsdgg543546fg;...............................
768737228732;bheem;dfsdg5465464767g;...........................
34565656546575;hema;jsdsds45345455h;..........................
希望の出力:ファイル1地図を検索する必要がありますファイル2そして入れてファイル3(出力) 次のようになります。
345656565465;ram;dfdfdf54532fdf;...............................
783329439432;sam;dfsdgg543546fg;...............................
これまで私は次のことを試しました。
$ awk -F'|' 'NR==FNR{c[$1$2]++;next};c[$1$2] > 0' file2 file1
また、Perlを試してみましたが、目的の出力を提供していないので、これが正しいかどうかはわかりません。
perl -e 'open(A, "file2"); while(<A>){/.+?\|[^|]+/ && $k{$&}++};
while(<>){/.+?\|[^|]+/ && do{print if defined($k{$&})}}' file1
私が直面する問題は、数字だけをgrepする必要がありますが、私のコードでは、同じパターンを含む大きな数字をインポートして3番目のファイルに貼り付ける必要があります。私がこれを達成するのを助けてください:)
答え1
あなたはほぼ成功しました
awk -F';' 'NR==FNR{c[$1]++;next ;} c[$1] > 0' file1 file2
どこ
-F';'
パイプの代わりにセミコロンを区切り文字として使用します。- 最初のものを使用して
file1
番号をキャプチャします。 - 最初の列を選択したいと思います。