関連する質問はhereです。awk beginner awkを理解しようと思った "考えられたプロセス"
awk '/cat/{getline <"file2"; print};1' file1
line 1
line 1
I am a dog
I am a dog
line 2
line 2
I am a dog
を私は期待してい::実行時に
line 1
line 2
:
ファイル1:
I am a cat
I am a dog
I am a dog
I am a cat
I am a dog
ファイル2
は、私は2つのファイルを持っている
line 1
I am a cat
I am a dog
I am a dog
line 2
I am a cat
I am a dog
上記のコードでのawkの私の理解:ファイル1から
読むラインは、cat
が存在する場合、最後にfile 2
と1
から印刷ラインもfile 1
からのラインを印刷するのawkに指示します。 cat
が見つからない場合、awkはfile 2
から何も印刷しませんが、対応する行はfile 1
から印刷されます。
awkがfile 1
の最初の行を読み取り、cat
を見つけて、file 2
から最初の行を出力しているように見えます。 awkは1
を与えられた条件に合うようにinterperetsし、file 2
から最初の行を再び出力します。 awkがcat
を見つけられなかった場合、それは1
を真と解釈し、file 1
から出力されますか?
awk '/cat/{getline this<"file2"; print this};1' file1
line 1
I am a cat
I am a dog
I am a dog
line 2
I am a cat
I am a dog
はここで何が起こっている:私はこれを実行すると、私は興味深い発見他
何かがありますか?あなたの時間をありがとう。ラインI am a cat
が処理される
うまくいけば、これは学問的な質問であり、あなたの質問に実際にスクリプトを使用することを検討していないことを望みます。もしそうなら、http://awk.freeshell.org/AllAboutGetlineを見てください。 –
@Ed Mortonの情報をありがとう。実際にこれを何かのために使っているわけではなく、ただ学びます。 – thecomebackid