xargc命令

1、xargc命令:给其他命令传递参数的一个过滤器;组合多个命令的一个工具。

xargs命令可以通过管道接受字符串,并且将接收到的字符串通过空格分割(默认情况下时空格分割)成许多的参数,然后将参数传递给后面的命令,作为后面的命令的命令行参数。

2、一个命令获取参数一般有两种情况:通过命令行参数或者标准输入。

Linux中很多命令都是从命令行参数中获取参数,然后从标准输入中读取,反映在程序中,

<1>命令行参数是通过main(int argc,char* argv[],char* envp[])的参数中获得的,

<2>而标准输入则是通过通过标准输入函数(scanf)读取到的,它们获取的地方不一样。标准输入是有缓冲区的,

(1)、cat和管道一起使用:

当cat后面有参数时,不去标准输入中读:

a.txt存在时,直接读取


当b.txt文件不存在时,cat提示文件不存在


下面这条从标准输入中读取


用参数-来指定去从标准输入中读取


直接使用cat,程序等待输入,此时也是从标准输入中得到的内容


只是显示a.txt中的内容,虽然指定了-去标准输入里去读,结果却只在文件中进行了读取。


当使用echo 'hello' | grep a.txt - 时,grep会同时处理标准输入中的hello也会从a.txt中搜索。

cat和grep的不同就在于当指定了-选项时(既要去标准输入中读取时),当cat后有文件时,只会读文件内的内容,而grep标准输入里的内容和文件里的内容都会处理。

(2)、xargs和管道的使用及对比


对比


(3)、xargs的用法:

①默认情况下xargs将其标准输入中的内容以空格(包括Tab、回车换行)分割成多个,然后当做命令行参数传递给其后面的命令。


②-d选项,用于指定分割符。


③-p选项,使得xargs命令不会马上执行后面的命令,而是输出即将要执行的完整命令(包括命令以及传递给命令的命令行参数)来询问是否执行,只有输入y才能继续执行。


④-n选项,用于将xargs产生的命令行参数,每次传递n个给后面的命令执行。


⑤-E选项,指定一个字符串,当解析出很多命令行参数的时候,如果搜索到-E所指定的命令行参数时,则只会将-E指定的命令行参数之前的传递给后面的命令。


但是-E选项在-d选项存在时不起作用


⑥与find命令一起使用

find默认情况下输出结果是每条记录后面加上换行符


(4)、总结:

管道是实现将前面的标准输出作为后面的标准输入!

xargs是将标准输入作为命令行参数!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值