我正在尝试自动替换Apache Tomcat中的服务器标头,以防止告诉人们我正在使用Apache。我目前正在使用 sed 来尝试完成此操作。我正在运行以下命令:
sed -ir 's/(?<=server="((.*((?="(/IAmATeaPot/g' ./checktext.xml
我正在尝试更改检查文本.xml在我正在运行当前读取的命令的同一目录中
连接器端口="8080" ... 服务器="Apache"/>
并将其更改为:
连接器端口="8080" ... server="IAmATeaPot"/>
我的正则表达式适当地捕获了引号中的字符串,并在在线正则表达式检查器中工作,但是没有任何反应,也没有收到任何错误。知道我做错了什么吗?
我认为这将完成更干净的工作,而不必处理前瞻和后视。
s/server="[^"]*"/server="IAmATeapot"/
您正在寻找server="
,然后是 0 个或多个非"
字符,然后是结束"
,然后用server="IAmATeapot"
替换整个内容。