sed仅在1次出现时附加行

Mar*_*tin 3 sed

有这个文件

ServerName *
ServerAlias *
ServerAlias *

<Directory>
Run Code Online (Sandbox Code Playgroud)

我想在第一次出现ServerAlias后用文本S2追加一个新行.我尝试了以下内容

sed '/ServerAlias/ a\S2\' foo
Run Code Online (Sandbox Code Playgroud)

但是这在所有事件发生后都会附加.

我的最终结果应该是

ServerName *
ServerAlias *
S2
ServerAlias *

<Directory>
Run Code Online (Sandbox Code Playgroud)

ДМИ*_*КОВ 5

实际上,它不是sed,但也许awk可以帮助你.

$> cat ./file
ServerName *
ServerAlias *
ServerAlias *

<Directory>

$> awk '{print} /^ServerAlias/ && !n {print "S2"; n++}' ./file
ServerName *
ServerAlias *
S2
ServerAlias *

<Directory>
Run Code Online (Sandbox Code Playgroud)

UPD:现在修复了错误,谢谢glenn_jackman