命令输出处理工具xargs

传递参数变量给xargs

有时候需要传递变量给xargs来执行,则使用-I {}参数

echo 192.168.1. | xargs -I{} grep {} *.txt
export TEST=hallo2
echo "hallo" | xargs sh -c 'echo passed=$1 test=$TEST' sh

将多行输出转换成一行

xargs有一个神奇的功能就是将一个命令的多行输出转换成一行,这样就方便在shell中引用为字符串变量进行分隔处理

um@server#ls -1 *.sh
linux_sysinfo.sh
aix_sysinfo.sh
audit_script.sh
chperm_messages.sh

um@system#ls -1 *.sh | xargs
linux_sysinfo.sh aix_sysinfo.sh audit_script.sh chperm_messages.sh

参考

Last updated