linux命令之玩转xargs

linux命令之玩转xargs

我们可以用管道将一个命令的标准输出重定向到另一个命令的标准输出,但是有些命令
只能以命令行参数的形式接收数据,而无法接受通过stdin的数据,这个时候我们就要用到xargs。

xargs应该紧跟管道操作符之后。

1.将多行转换为单行,将单行转换为多行。

[[email protected] 桌面]# cat show.txt

wang

Hunan Chenzhou

123456

li

Guangzhou Zhuhai

654321

[[email protected] 桌面]# cat show.txt | xargs

wang Hunan Chenzhou 123456 li Guangzhou Zhuhai 654321

[[email protected] 桌面]# cat show.txt | xargs -n 4

wang Hunan Chenzhou 123456

li Guangzhou Zhuhai 654321

2.定界符,使用-d 选项

[[email protected] 桌面]# cat show.txt | xargs -d "\n"

wang Hunan Chenzhou 123456  li Guangzhou Zhuhai 654321

3.读取stdin,将格式化参数传递给命令(一个或多个)

[[email protected] 桌面]# vi ceshi.sh

#!/bin/bash

echo $*‘OK‘

[[email protected] 桌面]# chmod +x ceshi.sh

[[email protected] 桌面]# cat show.txt | xargs -n 1 ./ceshi.sh

wangOK

HunanOK

ChenzhouOK

123456OK

liOK

GuangzhouOK

ZhuhaiOK

654321OK

[[email protected] 桌面]# cat show.txt | xargs ./ceshi.sh

wang Hunan Chenzhou 123456 li Guangzhou Zhuhai 654321OK

4.传递复杂的命令参数(可变,不可变参数)-I选项替换字符

[[email protected] 桌面]# cat show.txt | xargs -I {} ./ceshi.sh -p {} -1

-p wang -1OK

-p Hunan Chenzhou -1OK

-p 123456 -1OK

-p li -1OK

-p Guangzhou Zhuhai -1OK

-p 654321 -1OK

5.xargs结合其他命令的用法

[[email protected] 桌面]# file * | grep show | cut -d ":" -f1 | xargs wc -l

8 show.txt

[[email protected] 桌面]$ file * | grep show | cut -d ":" -f1 |xargs -t wc -l

wc -l show.txt

8 show.txt

-t选项,先打印命令,然后再执行

[[email protected] 桌面]# file * | grep show | cut -d ":" -f1 | xargs vi    打开vi编辑器

[[email protected] 桌面]# file * | grep show | cut -d ":" -f1 | xargs -t -i mv {} {}.bak

mv show.txt show.txt.bak

修改名字

[[email protected] 桌面]$ find . -name "*.txt" -type f -print0 | xargs -0 tar -zcvf text.tar.gz

查找所有txt文件,并压缩它们。

其实xargs可以接很多命令,发现它们你会觉得非常有趣。

时间: 2024-11-05 21:33:37

linux命令之玩转xargs的相关文章

Linux命令之 expand split xargs

expand # expand [-t] file 将 [tab] 按键转成空格键 选项与参数: -t     :后面可以接数字.一般来说,一个 tab 按键可以用 8 个空格键取代. [email protected]:~/shell# cat file1 John Dagget 341 King Road Plymouth Alice Ford 22 East Broadway Ricahmond [email protected]:~/shell# expand -t 4 file1 Jo

每日linux命令学习-xargs命令

xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令.      简单来说,通常与“|”搭配

Linux命令学习之xargs命令

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具.它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数.xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行.xargs的默认命令是echo,空格是默认定界符.这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代.xargs是构建单行命令的重要组件之一. args用作替换工具,读取输入数据重新

linux命令--xargs的使用

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行. xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令. 之所以

linux 命令总结(转载)

linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Linux上远程显示Windows桌面 安装rdesktop包 3. 手动添加默认网关 以root用户, 执行: route add default gw 网关的IP 想更改网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY  /etc/in

21天,搞定软件测试从业者必备的Linux命令

开始之前,先同步一个结论: 对于软件测试从业者,如果你至今为止,还不懂Linux,或者完全没有接触Linux ,这是一件很危险和恐怖的事 . 此刻.现在.果断,学习Linux命令 . 如果你工作中,完全接触不到Linux ,或者公司服务的环境,还是Windows,赶紧自学Linux,并果断干脆的跳槽 . 这件事,太危险 ,几年后,也许会出现,找不到工作的尴尬境遇 . / 开始进入主题 . 如下的这些命令,都是老徐根据自己的从业十年经验,精心筛选,每个命令,点到为止,挑选了一些高频的工作场景 .

零基础入门必备的Linux命令和C语言基础

文件和目录(底部有视频资料) cd /home 进入 ‘/ home’ 目录’ cd … 返回上一级目录 cd …/… 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls [0-9] 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1) lstree 显示文件和目录由

【转载】每天一个Linux命令

每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdir 命令 每天一个linux命令(5)  : rm 命令 每天一个linux命令(6)  : rmdir 命令 每天一个linux命令(7)  : mv 命令 每天一个linux命令(8)  : cp 命令 每天一个linux命令(9)  : touch 命令 每天一个linux命令(10): cat 命令

linux命令(1):ls命令

ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等.ls 命令在日常的linux操作中用的很多! 1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 3. 常用参数: -a, –all 列出目录下的所有文件,包括以 . 开头