私は初心者であり、私の仕事は難しくなり始めます。私は自分の問題を説明します。 私は2つのテーブルFile1とFile2(参照テーブル)を持っています。awkは文字列の比較に基づいて2つの列を持つ2つのファイルを結合しました
File1
num, Name
1, 1_1_busteni
13, 23_Doicesti
40, 2_AR_Moreni
47, 2_AR_Moreni_SUD
55, Petrolul_Romanesc
62, castor
File2
ID_ref, Name_ref
R_001, BUSTENI
R_002, DOICESTI-23
R_003, MORENI
R_004, MORENI-SUD
R_005, ROMANESC
R_006, CASTOR
File3
num, Name,ID_ref,Name_ref
1, 1_1_busteni, R_001, BUSTENI
13, 23_Doicesti, R_002, DOICESTI-23
40, 2_AR_Moreni, R_003, MORENI
47, 2_AR_Moreni_SUD, R_004, MORENI-SUD
55, Petrolul_Romanesc, R_005, ROMANESC
62, castor, R_006, CASTOR
私は同じ列を持っていないが、私は& 2File1と& 2File2の間にいくつかの類似性を持っています。 File1はユーザーからのものであり、私はすべてを標準化したいので、多くの異なるケースがあります。 開始方法はわかりません。 私の考えは、私の最初のファイルのすべての "_"と私の2番目の " - "を削除し、それらを比較することでした。 私は別に
awk 'BEGIN {FS=OFS=","} {gsub(/_/,"",$2)}1' file1.txt and awk 'BEGIN {FS=OFS=","} {gsub(/-/,"",$2)}1’ file2.txt
でそれを行うために管理が、私は組み合わせて、私の2つのファイルを比較する方法がわかりません。
私も小文字について考える必要があります。 素敵な男が私にthis codeを与えます:それはCASTOR
のために働くが、どうすれば私のgsubに関連付けることができますか?
$ awk '
BEGIN { FS=OFS="," }
NR==FNR {
a[tolower($2)]=$0
next
}
{
split($2,b,"[^[:alpha:]]")
print $0 (tolower(b[1]) in a?OFS a[tolower(b[1])]:"")
}' file2 file1
多分もっと良い方法が存在する、私は開いている!ここ
なぜ '23_Doicesti'は' DOICESTI-23'にマッチするのですか?広すぎる – RomanPerekhrest
最初のコンマ区切り値が47,55または62のどちらから来ているのかわからないのですか? –
「
」は書式設定を試みたと思いますか? @Ravinderはあなたのコードをブロックに編集したので、各行の最後から削除する必要があります。 –