awk部分文字列の一致

awk部分文字列の一致

そのため、あるフィールドの文字列を部分的に一致させ、そのフィールドを別のファイル内の他のフィールドと一緒に使用しようとしました。

入力例 -

1.txtと入力してください。

example/world
example/forever

2.txtと入力してください

example123
example234

期待される出力.txt:

example123/world
example234/world
example123/forever
example234/forever

したがって、デフォルトではAWKを使用して-を使用してinput1.txtを2つのフィールドに分割します。

awk -F"/"

これは、最初の行が$ 1で、example$ 2があることを意味します。world

次に、input2.txtの$ 1を部分的に一致させ、input2.txtにその内容が含まれていることを確認し、一致を見つけてexampleinput1の$ 2と結合します。

ベストアンサー1

awk -v file2="input2.txt" -F'/' '{
  while ((getline line < file2) > 0){
    if (line ~ "^"$1) print line FS $2
  }
  close(file2)
}' input1.txt

これは基本的にあなたが説明するものです。input1.txtすべての行のそれぞれについてのinput2.txt先頭を読み、比較します$1。一致するものがある場合、input2.txt行は区切り文字/とで印刷されます$2

おすすめ記事