下面两段代码的执行结果让我百思不得其解:
❯ echo This++++this+++is+not++done | awk '{gsub(/\++/," ");}1'
This this is not done
❯ echo "x・・・・・・・・・・・・・・・・x" | awk '{gsub(/・+/,"A");}1'
xAAAAAAAAAAAAAAAAx
可以看到,上面将超出一次出现的+
进行了替换,连续的+
变成了空格,合理;
但下面的类似命令,则是将每一个单独的・
替换成了A
,而非贪婪地将所有的一连串・
进行替换。
我思索了很久也只能想到・
和+
的不同在于・
是非ascii字符,不知道是不是这个原因?另外如果需要实现类似的效果,awk命令该怎么写?