xargs命令
命令格式
xargs [OPTION]... COMMAND INITIAL-ARGS...
[OPTION]:表示命令的零个或多个选项
COMMAND:表示任意的linux命令
INITIAL-ARGS:表示从表中的输入中读取的内容作为命令的参数
xargs的作用
echo "--help"|cat
此命令会将–help作为字符串输出。
echo "--help"|xargs cat
此命令会显示cat的帮助信息。
从以上的示例可以看出:前者试讲–help作为字符串输出。后者是将–help作为cat命令的参数。
xargs的[OPTION]
-d选项
默认情况下xargs将其从标准输入中读取的内容以空白(包括空格、Tab、回车换行等)分割后当做命令行参数传递给命令,并运行。通过-d
选项可以指定分隔符。
指定@为分隔符。
-p选项
将最终需要执行的命令输出,询问用户是否执行此命令。输入y表示执行,n表示不执行。
-n选项
-n表示按照分隔符分割从标准输入读取的内容后,每n个参数作为命令行参数来执行。
相当于执行了echo A B
,echo C D
,echo E
三个命令。
-E或-e
-E <eof-str>
,有的系统的xargs版本可能是-e <eof-str>
该选项指定一个字符串,当xargs解析出多个命令行参数的时候,如果搜索到-e指定的命令行参数,则只会将-e指定的命令行参数之前的参数(不包括-E指定的这个参数)传递给xargs后面的命令。
只输出了C之前的A B。注意:-E命令不能和-d同时使用,否则-E不生效。
-0选项
-0 选项表示以 ‘\0’ 为分隔符,相当于-d \0
。\0在C语言中表示字符数组的结尾。
find . "*.log" -print0|xargs -0 grep "error"
find . "*.log" -print0|xargs -d '\0' grep "error"
以上两个命令作用是相同的,都是查找包含error关键字的log文件。-print0
选项会将匹配的log文件路径以\0进行分割。
参考资料:
https://blog.csdn.net/lujian1989/article/details/91986298