2つのファイルを比較し、一致基準に基づいて異なるファイルを生成します。

2つのファイルを比較し、一致基準に基づいて異なるファイルを生成します。

a.txtとb.txtという2つのファイルがあります。ここで、a.txtにはzn12c5bやzn4i8lなどの「zn」で始まる行が含まれ、b.txtにはt17v11 /などの「/number」パターンで終わる行が含まれています。 112または12c5b/450。

私の目標は、b.txtの文字列(末尾の「/number」パターンなし)と一致しないa.txtの文字列(「zn」なし)をFinal.txtに書き込むことです。

たとえば、

a.txt:

zn12c5b
zn4i8l

b.txt:

t17v11/112
12c5b/450
4i8ls/681

Final.txt で次の出力を取得する必要があります。

4i8l

注:a.txtファイルの4i8l(「zn」プレフィックスなし)は、ファイルの4i8ls(「/ 681」サフィックスなし)と同じではありません。私はUbuntuシステムを使用しています。

ベストアンサー1

$ awk -F'/' 'NR==FNR{b[$1]; next} {sub(/^zn/,"")} !($1 in b)' b.txt a.txt
4i8l

おすすめ記事