GNU/Linux >> Linux の 問題 >  >> Linux

パターンが最初に発生した後にファイルを別のファイルに挿入しますか?

一致するPATTERNの後にfile1の内容をfile2に挿入したいと思います。 PATTERNが最初に出現した後でのみ実行したい。

自分のニーズに合わせて、次のコマンドに加える必要のある変更を知りたいのですが。

sed -i "/PATTERN/r file1" file2

承認された回答:

sed '/PATTERN/{
       r file1
       :a
       n
       ba
     }' file2

:a n ba PATTERNの後、最後までファイルの内容全体を印刷するサイクルです。これらの6行は1つのコマンドにすぎないことに注意してください。ただし、 rの次のsedコマンドを区切るには改行が必要です。 、 およびb

info sedからの追加情報 :

`n'
     If auto-print is not disabled, print the pattern space, then,
     regardless, replace the pattern space with the next line of input.
     If there is no more input then `sed' exits without processing any
     more commands.

`: LABEL'
     [No addresses allowed.]

     Specify the location of LABEL for branch commands.  In all other
     respects, a no-op.

`b LABEL'
     Unconditionally branch to LABEL.  The LABEL may be omitted, in
     which case the next cycle is started.

Linux
  1. ファイルの内容を表示せずにクリップボードにコピーしますか?

  2. Grep一致後のファイルの行数をカウントする方法は?

  3. 特定のパターンで最新のログ ファイルを末尾に -f する方法

  1. ファイル B に表示される行を別のファイル A から削除するには?

  2. パターンの後にコンテンツをgrepする方法は?

  3. mmap:マップされたファイルはすぐにメモリにロードされますか?

  1. SHOW PROCESSLISTの出力をMySQLのファイルに保存するにはどうすればよいですか?

  2. すべてのファイルを単一のファイルに再帰的に cat する

  3. UNIXで、ファイルの10行目から15行目を別のファイルにコピーする方法は?