awk shell 父目录

您所在的位置:网站首页 awk通配符 awk shell 父目录

awk shell 父目录

2023-08-13 01:44| 来源: 网络整理| 查看: 265

    "a ,。/ b()- +!# % …… & * \",上来先乱敲一通,这些都可以称之为“字符”,那什么是“元字符”嘞?就是shell里面规定了一些字符,在shell命令行里不再表示字符本身含义的一些字符,称之为元字符。例如"?"这个字符,目录有两个文件

ce965e5354b669c4fa062b2ec9359ec6.png

用"ll liushuo"命令将,liushuo这个文件找出来

2e48a78532e698039c03ab6ead0dc64b.png

同理,我们用“ll liu?huo”命令将liu?huo文件找出来

4ee8c77195e4b59abd22c5a1fd9bc855.png

可以看到与预期不是很符合,不但将liu?huo找出来了,还将liushuo也找出来了,这就是“?”是元字符,导致不再是其本身含义了。

这些元字符包括 * ?[ ] ( ) { }  \,一共6个shell的元字符,下面分别介绍一下用法,非常方便与强大。

1: “ * ”  ;ll liu*

含义:匹配任意(0-无穷)个字符

1c53679577d0a09719c56c4ecc7254ea.png

比如“liu*”,表示文件的名字只要以“liu”开头,就满足搜索匹配的条件,非常好用的一个元字符。

2:“ ? ”

含义:匹配任意1个字符; ll liu?huo

这里我们就可以对刚开始我举得例子做解释了,“liu?huo”的意思是,文件必须以"liu"开头,然后紧跟任意一个字符(必须得有字符,空字符不行的),然后是以“huo”三个字符结尾的文件,“liushuo”和“liu?huo”两个文件匹配出来了。

3: “ [ ]” ; ll liu[a-z]huo

含义:匹配括号中任意一个字符

550cb72673695b19eef70a4047b67856.png

只要文件中有以“liu”开头,然后是a-z中的任意一个字符,然后以“huo”结尾的文件都会被匹配出来,这里文件“liushuo”符合要求。

4:“( )”; (cd ~)

含义:()中的命令,在子shell中执行,就是命令不会对当前shell产生影响

4e673d48488938cccebc31195ca8b5fd.png

可以看到第一次执行(cd ~)目录层次没有变化,因为是在子shell中执行cd ~命令,不会对当前shell产生影响;而第二次执行cd ~是在当前shell中执行,会对当前shell产生影响,可以看到,当前shell目录由之前的liushuo切换到了~目录。

5:“{ }”;mkdir liushuo{111,222,333}

含义:“{ }”表示一个集合,里面的是集合的元素,元素间用“,”隔开。

cdd3589fb1e236a5e04a56eef5bc59ab.png

我们通过这个命令建立了liushuo111, liushuo222, liushuo333 这三个目录

6:"\"; ll liu\?huo

含义:转义字符,让元字符回归本意,加在要转义的元字符前面

9c51a79b39d14786d5b134bb223da4e1.png

比如我们开头提到的那个问题,我只想搜索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