首页 > 其他分享 >对find,xargs,grep和管道的一些深入理解

对find,xargs,grep和管道的一些深入理解

时间:2023-03-17 18:34:56浏览次数:48  
标签:xargs grep 标准 命令 command ls find 输入

转载:
http://fatmouse.xyz/2016/05/10/2016-05-10-find-grep-xargs-and-pipe/

1、参数与标准输入
这两个词我们在Linux命令中是很常见的。但是参数和标准输入其实是有区别的。我们日常使用的很多命令,例如ls -lah .中。l, a, h ,.都是命令ls的参数。至于标准输入,可以说它某种流数据。而通常来讲标准输入的流数据来源就是我们的终端输入。在Linux命令中,有些命令可以接收标准输入,有些是不能的。像上面的ls,就是只能接收参数,不能接收标准输入。像cat命令或echo命令,这些是可以的。

怎么分辨一个命令可不可以接收标准输入?很简单,当你敲完命令回车后,终端会等待接收你的输入,例如当你在终端输入cat后,终端会等待你输入字符,当你输入一些字符后,然后按Ctrl-C发送终止符号。这时cat命令接收标准输入完毕,执行命令,也就是将刚才键入的内容输出的标准输出上(屏幕)。

2、管道
管道的作用是将前面命令的标准输出作为后面命令的标准输入。这里要注意,后面的命令接收的是标准输入,所以如果命令不支持接收标准输入,那么就不能直接使用管道,例如常用的ls命令,只能使用参数,而不能使用标准输入,所以[command] | ls是不能使用的。而命令如echo或cat就可以。那么肯定有方法来实现这些不能使用标准输入的命令与管道结合,这时候xargs便出场了。

3、xargs命令
xargs命令通俗来讲就是将标准输入转成各种格式化的参数,所以命令[command 1] | xargs [command 2]就是将command 1的标准输出结果,通过管道|变成xargs的标准输入,然后xargs再将此标准输入变成参数,传给[command 2]。这样一来,通过xargs命令,我们便可以在管道后面使用那些不接收标准输入的命令了。例如[command 1]|xargs ls,是不是很熟悉?

标签:xargs,grep,标准,命令,command,ls,find,输入
From: https://www.cnblogs.com/geekdc/p/17227803.html

相关文章

  • 438.Find All Anagrams in a String
    给定两个字符串 s 和p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符......
  • MongDb 报错 Finding the split vector for
    "Findingthesplitvectorfor"是MongoDB中分片操作时出现的错误消息,提示系统正在尝试为特定集合查找分片的分割点(splitvector),但该操作过程中出现了异常。该错误可能......
  • [LeetCode] 1334. Find the City With the Smallest Number of Neighbors at a Thresh
    Thereare n citiesnumberedfrom 0 to n-1.Giventhearray edges where edges[i]=[fromi,toi,weighti] representsabidirectionalandweightededge......
  • thinkphp find_in_set 与 replace
    //find_in_set$model->where('find_in_set(:cid,rc)',['cid'=>9])->select();//replace替换搜索(10,12),原(10),新(9)$model->where('id',1)->update(......
  • could not find version 9.6 of matlab runtime解决方法
    背景描述:用Qt执行matlab做的.exe程序文件,报如下图错误,couldnotfindversion9.6ofthematlabRuntime.电脑上原装的是matlab2017a对应的版本是9.2解决方案:去该链接下......
  • Cadence Virtuoso中动态链接到ADS不正常,Cannot find registration file ads,cdsenv to
      当启动virtuoso时会有如下警告,从而导致virtuoso动态链接到ADS工作不正常,比如仿真没有结果。解决方法:执行配置脚本,脚本位于$HPEESOF_DIR/bin/idfConfigCadence,直接执......
  • Find the smallest integer in the array
    InstructionsGivenanarrayofintegersyoursolutionshouldfindthesmallestinteger.Forexample:Given[34,15,88,2]yoursolutionwillreturn2Given......
  • Linux下的find的使用方法
    (Linux下的find的使用方法)一、通过文件修改时间查询1.查找5分钟前的文件查找5分钟之前的文件,可使用以下命令:[root@tianyi~]#find/etc-mmin+5|head|nl1 ......
  • shell使用-grep
    grepgrep命令用于查找文件里符合条件的字符串grep[选项]…查找条件目标文件选项,基本使用-i:查找时忽略大小写-v:反向查找,输出与查找条件不相符的行,不包含该字符串......
  • SpringCloud多模块项目打包报错Unable to find main class
    SpringCloud多模块项目打包报错Unabletofindmainclass彻底解决方法:所有子模块都去掉打包插件代码,在parent模块的pom中加上 <build>    <plugins>   ......