为什么ls *中的*代表的是任意个数的字符,而正则表达式中的*表示的是前一个字符匹配0次或任意多次?而且ls 使用^匹配开头的字符时无效?
这是linux下通配符与正则表达式的区别。其实,ls,rm,mv等命令并不支持正则表达式,而是支持通配符,sed,grep,awk等命令是支持正则表达式的。另一种说法是:通配符多用在文件名,正则表达式用于文本处理。
为什么ls *中的*代表的是任意个数的字符,而正则表达式中的*表示的是前一个字符匹配0次或任意多次?而且ls 使用^匹配开头的字符时无效?
这是linux下通配符与正则表达式的区别。其实,ls,rm,mv等命令并不支持正则表达式,而是支持通配符,sed,grep,awk等命令是支持正则表达式的。另一种说法是:通配符多用在文件名,正则表达式用于文本处理。