管道与xargs


1、管道:符号'|',将'|'前面命令的输出结果作为后面命令的输入。
         如:ls /bin | grep ^m.这行命令就是就是将bin目录下输出结果给到grep,并且匹配以m为开头的。其中ls:代表列出所有内容,bin是存放大多数命令的文件夹,/bin是绝对目录bin,单独的/就表示根目录了,grep是以正则的方式进行匹配,'^'就是在正则中以指定的内容为开头进行匹配。
2、xargs:有些命令无法接收管道参数,也就是说有些命令的结果会输入到终端,需要使用xargs来强制改变去向,这就是它的一个用处
       如:mkdir test》cd test/》touch 1.txt 2.pdf 3.py
       ls . | xargs rm
       其中:madir就是创建目录,cd切换目录,touch新建文件,可以多个
3、xargs其他小作用:
1》-d :指定以xx进行分割,等价于echo 11 22 33,相当于给echo传递了三个参数,分别是11、22、33。
       echo '11@22@33' | xargs echo 输出结果为11@22@33
       echo '11@22@33' | xargs -d '@' echo 输出结果为11 22 33
2》-p:询问是否执行,这种方式可以看清楚执行命令是什么样子
       echo '11@22@33' | xargs -p -d '@' echo
       输出结果为 echo 11 22 33
                  ?...y 就是在询问是否执行命令echo 11 22 33,输入y确认
                   11 22 33 就是执行出来的结果
3》 -n:把执行结果进行换行处理,后面的参数3代表每行执行的参数个数
       echo '11@22@33@44@55@66@77@88@99@00' | xargs -d '@' -n 3 echo
       输出结果为: 11 22 33
                             44 55 66
                             77 88 99 
                             00
4》-E:选定一个字符串,对该字符串前面的内容进行读取
        echo '11 22 33' | xargs -E '33' echo 输出结果为:11 22
        echo '11 22 33' | xargs -E '22' echo 输出结果为:11

猜你喜欢

转载自www.cnblogs.com/LJCHSYM/p/10620265.html