0

我正在尝试替换与模式匹配的行中的所有字符串.*q=HTTP用空字符串替换。

我正在使用以下命令。

sed s/.\*q=\|HTTP.*//  

但这不起作用。它不会用空字符串替换字符串。如果上面的命令有什么问题,请告诉我。

4

1 回答 1

3

这条线应该满足您的要求:

sed s'/\.\*q=\|HTTP//g'

例如:

kent$  echo "leave.*q=justHTTP foo"|sed s'/\.\*q=\|HTTP//g'        
leavejust foo

你的命令:

  • sed 命令中更好的引用表达式
  • 如果您想替换所有出现的模式,在您的情况下是 .*q 或 HTTP,您需要g在您的s/../../
  • 如果你只是想替换HTTP你不应该.*在它的末尾添加,否则它将删除 HTTP 之后的所有字符串。
  • 如果你想匹配文学字符串.*,你需要转义. *
于 2013-07-10T07:29:14.823 回答