awk shell 父目录 |
您所在的位置:网站首页 › awk通配符 › awk shell 父目录 |
"a ,。/ b()- +!# % …… & * \",上来先乱敲一通,这些都可以称之为“字符”,那什么是“元字符”嘞?就是shell里面规定了一些字符,在shell命令行里不再表示字符本身含义的一些字符,称之为元字符。例如"?"这个字符,目录有两个文件 用"ll liushuo"命令将,liushuo这个文件找出来 同理,我们用“ll liu?huo”命令将liu?huo文件找出来 可以看到与预期不是很符合,不但将liu?huo找出来了,还将liushuo也找出来了,这就是“?”是元字符,导致不再是其本身含义了。 这些元字符包括 * ?[ ] ( ) { } \,一共6个shell的元字符,下面分别介绍一下用法,非常方便与强大。 1: “ * ” ;ll liu* 含义:匹配任意(0-无穷)个字符 比如“liu*”,表示文件的名字只要以“liu”开头,就满足搜索匹配的条件,非常好用的一个元字符。 2:“ ? ” 含义:匹配任意1个字符; ll liu?huo 这里我们就可以对刚开始我举得例子做解释了,“liu?huo”的意思是,文件必须以"liu"开头,然后紧跟任意一个字符(必须得有字符,空字符不行的),然后是以“huo”三个字符结尾的文件,“liushuo”和“liu?huo”两个文件匹配出来了。 3: “ [ ]” ; ll liu[a-z]huo 含义:匹配括号中任意一个字符 只要文件中有以“liu”开头,然后是a-z中的任意一个字符,然后以“huo”结尾的文件都会被匹配出来,这里文件“liushuo”符合要求。 4:“( )”; (cd ~) 含义:()中的命令,在子shell中执行,就是命令不会对当前shell产生影响 可以看到第一次执行(cd ~)目录层次没有变化,因为是在子shell中执行cd ~命令,不会对当前shell产生影响;而第二次执行cd ~是在当前shell中执行,会对当前shell产生影响,可以看到,当前shell目录由之前的liushuo切换到了~目录。 5:“{ }”;mkdir liushuo{111,222,333} 含义:“{ }”表示一个集合,里面的是集合的元素,元素间用“,”隔开。 我们通过这个命令建立了liushuo111, liushuo222, liushuo333 这三个目录 6:"\"; ll liu\?huo 含义:转义字符,让元字符回归本意,加在要转义的元字符前面 比如我们开头提到的那个问题,我只想搜索liu?huo这个文件,怎么办呢,前面通过“ll liu?huo”命令搜索,搜索到了两个文件,这时我们通过将“?"转义,就可以实现精确的对文件”liu?huo“的匹配搜索啦。 元字符的内容就是这么多,元字符在shell中还是非常有用的可以提高工作效率,一定要多加使用。 这里要注意一下,这些元字符是shell的元字符,我们常常称之为通配符,一般用于shell命令行的操作,如ls, ll, cp,find等shell命令,主要用于匹配文件/目录的名字,不用于文本内容的查找!文本内容的查找是”正则表达式“,会结合shell的grep\sed\awk等命令使用,正则表达式也有一套元字符,其含义与上面介绍的有些出入,一定不要用混了哦! 悄悄话:shell编程虽然枯燥,但是对于提高工作效率还是很有帮助的,昨天下午一下午在,提取文件中的信息,面对上百个文件,打开两个就放弃一个一个查看了,然后就简单写了两行shell命令,就很轻松的解决了!愿我们都有能成为自定义玩家。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |