shell通配符的问题
最近学习一本程序的时候发现了下面的问题,想了好久也没想通,特向各位大牛请教。
入力文件如下。
[/home/test]$ cat sedTest.ini
export AA=1
export BB=2
export CC=3
执行完下面命令。
[/home/test]$ sed "s/\(export BB=\).*/\1BB/" sedTest.ini > sedTemp
输出结果1。
[/home/test]$ cat sedTemp
export AA=1
export BB=BB
export CC=3
这就是本来想要的结果。
出于好奇,改了一下sed命令如下。
[/home/test]$ sed "s/\(export BB=\)*/\1BB/" sedTest.ini > sedTemp
输出结果2。
[/home/test]$ cat sedTemp
BBexport AA=1
export BB=BB2
BBexport CC=3
为什么第二个命令少了一个通配符.之后,就变成了结果2呢?