我认为+和*都是贪婪的。为什么+在这种情况下似乎不匹配任何东西,但是*呢?
$ cat test
a
$ sed -i 's/^[ \t]+//g' test
$ cat test
a
$ sed -i 's/^[ \t]*//g' test
$ cat test
a
这些只是a
之前的空格(而不是制表符),但单独的标签或两者的混合会产生相同的结果。
这是sed (GNU sed) 4.2.2
。
答案 0 :(得分:2)
+
,这是sed
的默认值。使用+
与文字+
字符匹配。
使用-E
选项强制sed
识别ERE(扩展正则表达式)。
答案 1 :(得分:1)
你需要逃避' +'用反斜杠\+
sed -i 's/^[ \t]\+//g' test