sed匹配比预期更贪婪

时间:2012-06-01 05:35:57

标签: bash curl sed

我正在尝试在Bash中编写一行来获取给定URL的Content-Type(不编码)。这是我到目前为止所做的:

curl -Is http://www.google.com | sed -nr 's/^Content-Type: ([^;]*)/\1/Ip'

但是,这仍然是打印text/html; charset=ISO-8859-1,而不仅仅是text/html。在第一个分号后([^;]*)不应该停止比赛吗?

1 个答案:

答案 0 :(得分:3)

你想要的是:

curl -Is http://www.google.com | sed -nr 's/^Content-Type: ([^;]*).*/\1/Ip'

基本上在匹配组之后添加.*,以便在text / html之后添加部分;不会输出。