他のファイルでパターンを一致させる前に、ファイルから行を読み込んで結合する方法は?

他のファイルでパターンを一致させる前に、ファイルから行を読み込んで結合する方法は?

このヒントは役に立ちますが、まだ少し迷っています。私はその非常に単純な形式を盗みます。 別のファイルのパターン(タグ)の前にあるファイルの内容を挿入するには?

2つのファイルがあります。

ファイル1

test
test2
test3
test4

ファイル2

Numebr of results: 0
Numebr of results: 1

Object Name: 
Object UID: {A42CD268-ommitted}
Class Name: referral
    last_element: false
    referral_info: source 
    referral_obj: Name: ommitted (Table: ommitted)
    scheme_flags: 0
    type: member
Numebr of results: 0
Numebr of results: 0

希望の最終結果(ファイル3?)

test
Numebr of results: 0
test2
Numebr of results: 1

Object Name: 
Object UID: {A42CD268-ommitted}
Class Name: referral
    last_element: false
    referral_info: source 
    referral_obj: Name: ommitted (Table: ommitted)
    scheme_flags: 0
    type: member
test3
Numebr of results: 0
test4
Numebr of results: 0

file1 から一度に 1 行ずつ読み込み、「結果数」の次のパターンを探し、最初の一致項目の上の file1 に line1 を挿入し、ファイル全体を順番に繰り返そうとします。

よろしくお願いします!

ベストアンサー1

使用することをお勧めします行/変数/ファイルのインポートawk getline

$ awk '/^Numebr of results/ {if (getline line < "file1" > 0) print line} 1' file2
test
Numebr of results: 0
test2
Numebr of results: 1

Object Name:
Object UID: {A42CD268-ommitted}
Class Name: referral
last_element: false
referral_info: source
referral_obj: Name: ommitted (Table: ommitted)
scheme_flags: 0
type: member
test3
Numebr of results: 0
test4
Numebr of results: 0

おすすめ記事