テキスト ファイルを処理する AWK スクリプトを作成しましたが、最初のファイルのフィールドに基づいて、処理からの出力が別のファイルからデータを取得するように拡張する必要があります。これが私の言いたいことの例です。
File1.txt
abc123~17~yy~12345678
abc456~12~yy~23456789
abc789~34~zz~12345678
File2.txt
abc123~11~22~33~ABC-57
abc456~22~11~33~ABC-99
abc789~33~22~11~ABC-12
私の現在のawkスクリプトは、4番目のフィールドが「12345678」であるFile1.txtから各行を抽出して処理するため、2行が見つかります。
これを拡張したいので、見つけた行から、
abc123~xx~yy~12345678
abc123 を取得して File2.txt で検索し、その行の 4 番目のフィールドも出力します。
例えば。私の awk スクリプトは、File1.txt のフィールド 4 でトークンを検索し、フィールド 1 で long を出力し、File2.txt のフィールド 4 で、File1.txt のフィールド 1 に関連する行を出力します。
したがって、12345678 を検索している場合、出力は次のようになります。
12345678 abc123 ABC-57 17
12345678 abc789 ABC-12 34
(17 と 34 は File1.txt のフィールド 2 から来ています)。
要約すると、File1.txt の Field 4 で文字列を検索し、File1.txt の Field 1 が File1.txt の Field 1 と一致する File2.txt の行を見つけます。次に印刷
ファイル.フィールド4 ファイル1.フィールド1 ファイル2.フィールド4 ファイル1.フィールド2
それが明確であることを願っています。
File2.txt の「abc123」文字列を grep してから、4 番目のフィールドを選択しようとしました。これは機能していないように見えましたが、フィールド 1 にインデックスを付けてフィールド 4 を格納する File2.txt の AWK 配列が機能する可能性があると思います。
ただし、これについてどうすればよいかわかりません。
(注意してください、これは私がやりたいことの簡略化された例です。私の実際の要件は、ファイルにもっと多くのデータがあります)。