0

sed/awk を使用してファイルを編集したい。このファイルは、次のようにいくつかの構成セクションで構成されています。

SECTION 1 BEGIN
some stuff
SECTION END

SECTION 2 BEGIN
some stuff
some more stuff
important line
SECTION END

まだ存在しない場合は、できればコマンド 1 ライナーとしてimportant line最後に追加したいと思います。この質問でSECTION 2fgrep/sed コンボを見てきましたが、必要なものに適応させる方法がよくわかりません。

注: セクションに空白行がある場合があります。

どうもありがとう。

4

2 に答える 2

5

使用awk:

awk '
  $0 == "SECTION 2 BEGIN" { inSec2 = 1 } 
  inSec2 && $0 == "important line" { hasImportant = 1 } 
  inSec2 && $0 == "SECTION END" { 
    if (!hasImportant) { print "important line" } 
    inSec2 = 0
  }
  1'
于 2013-04-19T10:25:22.847 に答える