-
命令描述
xargs从标准输入中读取默认以空格分隔的项(可以使用双引号保护空格)(或单引号或反斜杠)或换行符,并执行命令(默认为/bin/echo)一次或多次,后面跟着任何初始参数从标准输入中读取的项。标准输入中的空行将被忽略。
-
参数了解
-0, --null 输入的参数包含单引号,双引号,反斜线都会被打印出来,并且以空字符作为分隔符 -a file, --arg-file=file 输入的参数从文件中获取,可以使用-d指定分隔符。 --delimiter=delim, -d delim 指定分隔符,可以是单个字符 \n 或八进制或十六进制转义码。 -i[replace-str], --replace[=replace-str] 不需要指定{},可以直接使用其他命令对 {} 进行迭代操作。例如: cut -d: -f1 < /etc/passwd | xargs -i echo {} -I replace-str 将读取的项保存到 {} ,可以使用其他命令对 {} 进行迭代操作。例如: cut -d: -f1 < /etc/passwd | xargs -I {} echo {} -L max-lines 指定执行命令时使用的最大行数,例如,-L 3表示每次将连续3行的内容合并为一个参数组传递给命令。默认以换行符\n作为行分割符。可以使用-d参数自定义分隔符。 -n max-args, --max-args=max-args 指定每个命令行每次最多可以使用多少参数。 -P max-procs, --max-procs=max-procs 指定一次运行最多的进程数,为0表示根据系统资源运行尽可能多的进程 -p, --interactive 提示用户是否运行这个命令,y or Y确定 --process-slot-var=name 用于在每个子进程中设置一个唯一的环境变量值,通常与-P 参数一起使用,以实现简单的负载均衡或区分不同的子进程。当你使用 xargs 并行运行多个进程时,--process-slot-var=name 会为每个子进程设置一个唯一的环境变量值。这些值是递增的整数,从 0 开始,一旦子进程退出,该值会被重用 -r, --no-run-if-empty 如果检测到没有传递任何参数,则直接退出。 -s max-chars, --max-chars=max-chars 用于控制单次命令行的最大字符长度 的参数,超过该值会自动将参数拆分为多次执行;使用 xargs --show-limits 查看系统的默认参数大小,最大参数最小参数. --show-limits 用于显示当前系统对命令行参数长度的限制,包括环境变量占用的空间、最大允许的命令行长度、xargs 默认的缓冲区大小等. -t, --verbose 在执行命令前,将执行的命令打印在控制台. --help 获取帮助信息 --version 获取版本并退出
-
示例:
有如下文件:root@kvm-server opt]# cat xargs.txt "argument01","argument02","argument03","argument04","argument05"
3.1. 从文件xargs.txt中打印所有参数。
[root@kvm-server opt]# xargs -a xargs.txt argument01,argument02,argument03,argument04,argument05
3.2. 从文件xargs.txt中打印所有参数,并指定 , 分隔符。
[root@kvm-server opt]# xargs -d , -a xargs.txt "argument01" "argument02" "argument03" "argument04" "argument05"
3.3. 从管道中获取参数,并使用echo一个一个打印出来
[root@kvm-server opt]# cat xargs.txt | xargs -d , -i echo {} "argument01" "argument02" "argument03" "argument04" "argument05"
3.3. 指定执行命令时使用的最大行数
[root@kvm-server opt]# cat xargs.txt | xargs -d , "argument01" "argument02" "argument03" "argument04" "argument05" [root@kvm-server opt]# cat xargs.txt | xargs -d , -L 3 "argument01" "argument02" "argument03" "argument04" "argument05" [root@kvm-server opt]# cat xargs.txt | xargs -d , -L 5 "argument01" "argument02" "argument03" "argument04" "argument05"
3.4 指定每个命令行每次最多可以使用多少参数
[root@kvm-server opt]# cat xargs.txt | xargs -d , -n 3 "argument01" "argument02" "argument03" "argument04" "argument05" [root@kvm-server opt]# cat xargs.txt | xargs -d , -n 5 "argument01" "argument02" "argument03" "argument04" "argument05"