使用带通配符的SED

时间:2012-02-08 07:08:32

标签: bash sed wildcard

我想用通配符替换字符串,但它不起作用。

字符串看起来像“some-string-8”

我写了

sed -i 's/string-*/string-0/g' file.txt

但输出是

some-string-08

2 个答案:

答案 0 :(得分:32)

星号(*)表示“前一项的零或更多”。

如果您想匹配任何单个字符

sed -i 's/string-./string-0/g' file.txt

如果要匹配任何字符串(即任何单个字符零次或多次),请使用

sed -i 's/string-.*/string-0/g' file.txt

答案 1 :(得分:5)

因此,正则表达式中“通配符”的概念有点不同。为了匹配“任何角色”,你会使用“。” “*”修饰符表示匹配任意次。