1

ブロック内の文字列AllowOverrideNoneAllowOverrideAllに置き換えることはできますが、一致するテキストのブロックしか印刷できません。

試合の前後にテキストを印刷するにはどうすればよいですか?

awk '
/<Directory \/var\/www\/>/, /<\/Directory>/ {
  sub(/AllowOverride None/,"AllowOverride All")
  print
}
' /etc/apache2/sites-available/default
4

2 に答える 2

1

next既存の後にaを追加printし、既存の閉じ中括弧の後にこれを追加します。

{print}
于 2012-08-17T00:54:50.787 に答える
1

最初の句を印刷せずに置換を実行してから、2番目の句を追加してすべての行を印刷できます。このような:

awk '
/<Directory \/var\/www\/>/, /<\/Directory>/ {
    sub(/AllowOverride None/, "AllowOverride All");
}
{
    print;
}
' /etc/apache2/sites-available/default

私はこれのクイックテストを行いました、そして私はそれがうまくいくと信じています。

于 2012-08-17T00:56:22.810 に答える