Linux xargs命令详解(附带实例)
Linux 的 xargs 命令来自英文词组 extended arguments 的缩写,用作给其他命令传递参数的过滤器。
xargs 命令能够处理从标准输入或管道符输入的数据,并将其转换成命令参数,也可以将单行或多行输入的文本转换成其他格式。
xargs 命令默认接收的信息中,空格是默认定界符,所以可以接收包含换行和空白的内容。
xargs 命令的语法格式如下:
【实例 1】默认以空格为定界符,以多行形式输出文件内容,每行显示 3 段内容值:
【实例 2】指定字符 X 为定界符,默认以单行的形式输出字符串内容:
【实例 3】指定字符X为定界符,以多行形式输出文本内容,每行显示两段内容值:
【实例 4】设定每一次输出信息时,都需要用户手动确认后再显示到终端界面:
【实例 5】由 xargs 调用要执行的命令,并将结果输出到终端界面:
xargs 命令能够处理从标准输入或管道符输入的数据,并将其转换成命令参数,也可以将单行或多行输入的文本转换成其他格式。
xargs 命令默认接收的信息中,空格是默认定界符,所以可以接收包含换行和空白的内容。
xargs 命令的语法格式如下:
xargs 参数 文件名常用参数见下表:
选项 | 描述 | 命令 | 说明 |
---|---|---|---|
-a | 设置从文件中读取数据 | -r | 如果输入数据为空,则不执行 |
-d | 设置自定义定界符 | -s | 设置每条命令最大字符数 |
-I | 设置替换字符串 | -t | 显示 xargs 执行的命令 |
-n | 设置多行输出 | --help | 显示帮助信息 |
-p | 执行命令前询问用户是否确认 | --version | 显示版本信息 |
【实例 1】默认以空格为定界符,以多行形式输出文件内容,每行显示 3 段内容值:
[root@clinux ~]# cat File.cfg | xargs -n 3 #version=RHEL8 ignoredisk --only-use=sda autopart --type=lvm # Partition clearing information clearpart --all --initlabel --drives=sda # Use graphical install graphical ………………省略部分输出信息………………
【实例 2】指定字符 X 为定界符,默认以单行的形式输出字符串内容:
[root@clinux ~]# echo "FirstXSecondXThirdXFourthXFifth" | xargs -dX First Second Third Fourth Fifth
【实例 3】指定字符X为定界符,以多行形式输出文本内容,每行显示两段内容值:
[root@clinux ~]# echo "FirstXSecondXThirdXFourthXFifth" | xargs -dX -n 2 First Second Third Fourth Fifth
【实例 4】设定每一次输出信息时,都需要用户手动确认后再显示到终端界面:
[root@clinux ~]# echo "FirstXSecondXThirdXFourthXFifth" | xargs -dX -n 2 -p echo First Second ?...y First Second echo Third Fourth ?...y Third Fourth echo Fifth ?...y Fifth
【实例 5】由 xargs 调用要执行的命令,并将结果输出到终端界面:
[root@clinux ~]# ls | xargs -t -I{} echo {} echo anaconda-ks.cfg anaconda-ks.cfg echo Desktop Desktop echo Documents Documents