ファイル(例:file1)の「n」行を別のファイルの「n」文字列の下にある別のファイルに追加したいと思います。

ファイル(例:file1)の「n」行を別のファイルの「n」文字列の下にある別のファイルに追加したいと思います。

はい

ファイル1:

This Dog
This Cat
This Duck
This Horse

ファイル2:

...
Animal Name
...

AniMal Type
...

AnIMal Class
...

animal Brand
...

私は次のことをしたいと思います:

  • 「Animal」(大文字と小文字を無視)の最初の項目の下にファイル1(行)の行1を追加します。
  • 2番目に表示される「Animal」(大文字と小文字を無視)の下にファイル1(猫)の行2を追加します。
  • 3番目の「Animal」の下にファイル1(This Duck)の3行を追加します(大文字と小文字を無視)。
  • 4番目の「Animal」項目の下にファイル1(末尾)の4行を追加します(大文字と小文字を無視)。
  • ...

したがって、通常、ファイル1のn行目は、「アニメーション」のn番目の発生(大文字と小文字を無視する)の下に追加する必要があります。

それでは、「sed」、「awk」、またはLinuxの他のコマンドを使用してこれを達成する方法は何ですか?

ベストアンサー1

GNU sedの使用:

$ sed '/^animal/IR File1' File2
...
Animal Name
This Dog
...

AniMal Type
This Cat
...

AnIMal Class
This Duck
...

animal Brand
This Horse
...

GNU拡張は次のとおりです。

正規表現一致のI修飾子は、正規表現を大文字と小文字を区別せずに一致させるGNU拡張です。

そして

Rファイル名

現在のサイクルの終わりまたは次の入力行を読み取るときに読み取るファイル名行を出力ストリームにキューに追加して挿入します。ファイル名を読み取れない場合、または末尾に達した場合、行は追加されず、エラー表示も表示されません。

おすすめ記事