Linux中的Xargs

来源:互联网 发布:运动蓝牙耳机 知乎 编辑:程序博客网 时间:2024/06/05 05:30

xargs从标准输入(stdin)中读取数据进行处理

  • 数据以空格进行分割
  • 可以根据参数进行一次或多次处理,默认的处理命令是/bin/echo
  • 空号不进行处理,会被忽略
  • 遇到命令状态为255时,xargs会立刻停止,譬如发生错误时。
    下面是xargs包含的参数

1、“-a”从文件中读取数据

[root@Simile /]# cat test.txta a b b c cThe new lineBrand new me[root@Simile /]# xargs -a test.txta a b b c c The new line Brand new me

2、‘-0’当输入有特殊字符时,将其当做一般字符处理,比如“”和空格

暂时不太理解这个的具体用处

3、‘-d’指定分隔符

[root@Simile /]# cat line.txtAiBiCiD[root@Simile /]# cat line.txt | xargs -d'i'A B C D

4、‘-E eof-str’指定结束标志为eof-str,xargs处理到这个标志就会停止
※需要注意的是:该用法只会检查空格分开的段落,不会检查单个字符。

[root@Simile /]# cat line.txtAi BiCi DiThe new line[root@Simile /]# xargs -E'i' -a line.txtAi BiCi Di The new line #此处用字符‘i’进行检索,并未生效[root@Simile /]# xargs -E'new' -a line.txtAi BiCi Di The

5、‘-I replace-str’将每一行输入,输入内容替换为 replace-str
line.txt有2行数据,获取该数据后,用echo命令写入到line中

[root@Simile /]# cat line.txt Ai BiCi DiThe new line[root@Simile /]# cat line.txt |xargs -t -I {} echo {}>>line.txtecho Ai BiCi Di echo The new line [root@Simile /]# cat line.txt Ai BiCi DiThe new lineAi BiCi DiThe new line

6、‘-i’同上
7、‘-n max-args’每次执行max-args个输入,默认值会执行所有

[root@Simile /]# cat line.txtAi BiCi DiThe new linea is char[root@Simile /]# cat line.txt |xargs -n 2Ai BiCiDi Thenew linea ischar[root@Simile /]# cat line.txt |xargs -n 4Ai BiCi Di Thenew line a ischar

8、‘-p’交互模式。执行前询问,y执行,n不执行。

[root@Simile /]# cat line.txt |xargs -p/bin/echo Ai BiCi Di The new line a is char ?...yAi BiCi Di The new line a is char[root@Simile /]# cat line.txt |xargs -p/bin/echo Ai BiCi Di The new line a is char ?...n

9、‘-r’无输入对象不会执行,

[root@Simile /]# echo ""|xargs -t mvmv mv: missing file operandTry `mv --help' for more information.[root@Simile /]# echo ""|xargs -t -r mv

10、‘-s max-chars’xargs每次执行命令的最大长度。
※可以自己试验一下。

11、‘-x’当xargs执行的命令长度大于-s max-char时,停止执行

12、‘-P max-procs’修改线程数,默认为单线程.max-procs为0时,as many processes as possible