|
发表于 2004-6-18 10:29:23
|
显示全部楼层
在grep中,查找模式可以用单引号,双引号,来括引,也可以不用引号
当模式包含有元字符或变量的时候,通常用双引号,而不可以用单引号.
如:
/home/lee/test#a=ca
/home/lee/test#grep $a txt #这里的$a,替换后是ca
ca1.xls
/home/lee/test#grep '$a' txt #单引号把变量$a直接解释成了$a,而不是ca
/home/lee/test#echo $? #失败
1
/home/lee/test#grep "$a" txt
ca1.xls
/home/lee/test#
不明白的是为什么[ns]a[0-9]\.xls这样的pattern也需要加单引号圈定嘛
在linux里不需要!,当然,你用的cygwin,也许需要
/home/lee/test#cat txt|grep [ns]a[0-9]\.xls
na1.xls
na2.xls
sa1.xls
/home/lee/test#cat txt|grep '[ns]a[0-9]\.xls'
na1.xls
na2.xls
sa1.xls
/home/lee/test#cat txt|grep "[ns]a[0-9]\.xls"
na1.xls
na2.xls
sa1.xls
/home/lee/test#cat txt|grep [ns]a[0-9].xls #这里的.不需要转义
na1.xls
na2.xls
sa1.xls |
|