我想用通配符替换字符串,但它不起作用。
字符串看起来像“some-string-8”
我写了
sed -i 's/string-*/string-0/g' file.txt
但输出是
some-string-08
答案 0 :(得分:32)
星号(*)表示“前一项的零或更多”。
如果您想匹配任何单个字符
sed -i 's/string-./string-0/g' file.txt
如果要匹配任何字符串(即任何单个字符零次或多次),请使用
sed -i 's/string-.*/string-0/g' file.txt
答案 1 :(得分:5)
因此,正则表达式中“通配符”的概念有点不同。为了匹配“任何角色”,你会使用“。” “*”修饰符表示匹配任意次。