考虑以下配置文件,它有两个alt_names
实例。在这里,我想删除第二次出现模式alt_names
的行。
.
.
[ server ]
subjectAltName = @alt_names
.
.
[ alt_names ]
我尝试了sed
命令,但它删除了所有带有模式匹配的行。我使用以下命令来执行此操作,
#sed '/alt_names/{2,$d}' inputfile
有些人可以了解sed
在这里使用的错误。
答案 0 :(得分:1)
以下将删除包含alt_names
的第二行。计数器c
将随着每个具有匹配模式的行而增加。
awk '/alt_names/{c++;if(c==2)gsub(/^.*$/,"")}1'
.
[ server ]
subjectAltName = @alt_names
.
.
修改并保存:
awk '/alt_names/{c++;if(c==2)gsub(/^.*$/,"")}1' inputfile >inputfile.tmp && mv inputfile.tmp inputfile