查看原文
其他

生物信息之独孤九剑——xargs

2018-03-27 王通 基因学苑

编者按

前面已经介绍过grep,sed,单行perl,sort,awk,vim,find,cut等8个命令,这次我们来介绍最后一个xargs命令。xargs用来进行参数传递。配合其他命令使用起来非常方便,在加上管道和重定向,一次就可以完成非常多的工作,这些技巧需要在实践中不断运用和总结,配合好了,可以极大的提高效率。

生物信息之独孤九剑——grep

生物信息之独孤九剑——sed

生物信息之独孤九剑——单行perl

生物信息之独孤九剑——sort

生物信息之独孤九剑——awk

生物信息之独孤九剑——vim

生物信息之独孤九剑——find

生物信息之独孤九剑——cut


1、xargs介绍:

xargs是给命令行传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者标准输入中读取数据,但是它也能够从文件的输出中读取数据。xargs 是一个强大的命令,它能够捕获一个命令的输出结果,然后传递给另外一个命令。


2、xargs选项参数:

-a file 从文件中读入作为sdtin。

-d delim 分隔符,默认的xargs分隔符是回车,这里修改的是xargs的分隔符

-e flag flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。

-i 或者是-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次: 

-L 后面接一个数字,用从标准输入读取的指定行数的非空参数运行命令。

-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。

-P 修改最大的进程数,默认是1,为0时候为尽可能多 ,一般不常用。

-p 询问是否运行命令的参数。

-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。

-s num 命令行的最好字符数,指的是xargs后面那个命令的最大命令行字符数。

-t 表示先打印命令,然后再执行。

-x exit的意思,主要是配合-s使用。


3、xargs用法:

xagrs主要用于参数传递,一般用在管道后面。


4、案例一:

find ./ -name *.fna | xargs rm

搜索当前目录下所有一点fna结尾的文件,然后删除掉。


5、案例二:

echo --help  |  xargs cat

将--help参数传递给cat命令


6、案例三:

find ./ -name "*.fna" | xargs tar -zcf genome.tar.gz

搜索当前目录下所有一点fna结尾的文件,然后打包压缩。


7、案例四:

cat passwd.txt |xargs -d: -n 2

使用-d来修改分隔符,配合-n,让每行输出固定的内容。


8、案例五:

find  ../../ -name  "*.fq.gz  | xargs -I {}  cp {} .

将某个目录下fq.gz格式的文件,拷贝至当前目录。


更多关于xargs命令的功能,可以通过man xagrs或者xargs --help查看。



---------- END ----------

(更多精彩内容,欢迎关注微信公众号)



您可能还会感兴趣的

手把手教你生信分析平台搭建专栏合集
生物信息重要资源站点合集
Perl还是Python或者R
绘制manhanttan图
利用R绘制GO条目图
如何在Linux下优雅的装X
利用R实现vlookup
生物学才是终极学科


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存