hyfcomeon 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