linux命令-xargs

tycoon 2013-06-14

今天查了一天的系统数据查到头大,同时也学到了linux的xargs命令的使用,趁着脑袋还热记录下来,省的以后用的时候再去百度

xargs:它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题(百度百科)。

Usage: xargs [-0prtx] [--interactive] [--null] [-d|--delimiter=delim]
       [-E eof-str] [-e[eof-str]]  [--eof[=eof-str]]
       [-L max-lines] [-l[max-lines]] [--max-lines[=max-lines]]
       [-I replace-str] [-i[replace-str]] [--replace[=replace-str]]
       [-n max-args] [--max-args=max-args]
       [-s max-chars] [--max-chars=max-chars]
       [-P max-procs]  [--max-procs=max-procs]
       [--verbose] [--exit] [--no-run-if-empty] [--arg-file=file]
       [--version] [--help] [command [initial-arguments]]

 说一下比较有用的基本参数

e eof-str:读取到这个字符串时就结束

-p:每次执行一个argument时询问,在做批量删除文件时会用到

-n num:命令执行时用到的参数个数

-t:执行过程中输出命令

-i:参数名称 默认是{} -i与-n互斥 两者只能存在一个

-d char:分隔符 默认的xargs的分隔符是回车,argument的分隔符是空格,此处是修改argument的分隔符

常用命令

1.批量修改文件

ls|xargs -i mv {} {}.bak

 2.查找

cat test|xargs -i grep {} filename.txt

 由于-i与-n不能同时使用,因此如果想要使用多个参数 需要自行调整

3.改变分隔符

test文件内容

1_2_3

 执行命令

cat test|xargs

 输出

1_2_3

 执行命令

cat test|xargs -d "_"

 输出

1 2 3

相关推荐