`
zhengdl126
  • 浏览: 2509921 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

xargs格式化输出

 
阅读更多



从标准输出建立并运行命令行

把从stdin接收到的数据重新格式化 再将其作为参数提供给其它命令


------------------------------------------------ xargs 选项:
-d 选项 :为输入指定一个定制的定界符

-p 选项 ;它使操作具有可交互性:
命令: file * | grep ASCII | cut -f1 -d: | xargs -p vi
此处的 xarg 要求您在运行每个命令之前进行确认。如果您按下 "y",则执行命令。


-t 选项 ;使用一个详细模式,显示要运行的命令,是调试过程中一个非常有帮助的选项。
如果传递给 xargs 的输出为空怎么办?考虑以下命令:
命令:file * | grep 12345 | cut -f1 -d: | xargs -t wc -l
wc -l
0

此处,搜索 "12345" 后没有匹配的内容;因此 xargs 的输入均为空,如第二行所示(由于我们使用 -t 这个详细选项而产生的结果)。

-r 选项 ;虽然这可能会有所帮助,但在某些情况下,如果没有要处理的内容,您可能希望停止 xargs;如果是这样,可以使用 -r 选项:
命令: file * | grep 12345 | cut -f1 -d: | xargs -t -r wc -l
如果没有要运行的内容,该命令退出。


-n 选项 ;修改单个命令行传递的参数个数。例如我们即使向 xargs ls -ltr 传递五个文件,但每次向 ls -ltr 仅传递两个文件。
命令:file * | grep ASCII | cut -f1 -d: | xargs -t -n2 ls -ltr

 

 

 

 

 

 

 

将多行输入转换为单行输出:

#cat example.txt

1 2 3 4 5 6

7 8 9 10

11 12

#cat example.txt | xargs

 

将单行输入转换成多行输出:

#cat example.txt | xargs -n 3

 

1 2 3

4 5 6

....

 

 

根据定界符格式化输出:

#echo "splitXsplitXsplitXsplit" | xargs -d X -n 2

split split

split split

 

-n 2表示一行2个记录(2列)

 

---------------------------------------------  实例


example1


描述:输出当前目录下所有符号链接或经过压缩的ASCII文件并显示

命令:file -Lz * | grep ASCII | cut -f1 -d: | xargs ls -ltr

解释:

file -Lz *:用于查找是符号链接或者经过压缩的文件;

输出结果:

anaconda-ks.cfg: ASCII English text

install.log: ASCII text

insall.log.syslog: ASCII text

mbox: ASCII mail text

grep ASCII:用于搜索包含 "ASCII" 字符的字符串并产生;

输出结果:

anaconda-ks.cfg: ASCII English text

install.log: ASCII text

insall.log.syslog: ASCII text

mbox: ASCII mail text

cut -f1 -d:表示采用冒号作为分隔符,并取出第一列。所以尽显示文件名;

输出结果:
anaconda-ks.cfg

install.log

install.log.syslog

mbox

xargs:将上述列表作为参数进行传递,一次传递一个。

xargs ls -ltr:用于接收输出并对其执行 ls -ltr 命令,命令等价于:


ls -ltr anaconda-ks.cfg


ls -ltr install.log


ls -ltr install.log.syslog


ls -ltr mbox


结果:

大家应该都知道了吧。

xargs 本身虽然没有多大用处,但在与其他命令相结合时,它的功能非常强大。


example2

描述:计算当前目录下各个文件行数:

命令:file * | grep ASCII | cut -f1 -d: | xargs wc -l

解释:(无)

结果:

40 anaconda-ks.cfg

452 install.log

53 install.log.syslog

68 mbox

613 total


example3

描述:用vi打开匹配后的文件

命令:file * | grep ASCII | cut -f1 -d: | xargs vi

解释:

该命令使用 vi 逐个打开文件。当您希望搜索多个文件并打开它们进行编辑时,使用该命令非常方便。

example4

描述:快速重命名目录中的文件。

命令:ls | xargs -i mv {} {}.old

解释:

-i 选项告诉 xargs 用每项的名称替换 {}。

 

 

 

-----------------------------------------find 与exec xargs  是常用组合

 

传送

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    linux中xargs命令的各种使用技巧

    xargs命令是把接收到的数据重新格式化,再将其作为参数提供给其他命令,下面介绍xargs命令的各种使用技巧,一起来看看吧。 一、将多行输入转换成单行输入: [root@host1 test]# echo -e 1 2 3 4 5 \n6 7 8 \n9 10 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    linux自动清理日志脚本分享

    1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理...所以需要增加 –print0 用 null来 作为边界符号,才敢结婚 xargs –o 来格式化输入 使

    Linux与unix shell编程指南

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    linux shell 编程教程

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    shell 编程指南pdf

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    LINUX与UNIX SHELL编程指南(很全)

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    LINUX与UNIX_Shell编程指南(上)

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    linux与unix shell 编程(下)

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    LINUX与UNIX SHELL编程指南.rar

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    Linux与unix shell编程指南1.rar

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    LINUX与UNIX SHELL编程指南

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    LINUX与UNIX Shell编程指南

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

    linux与unix shell编程(上)

    8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK...

Global site tag (gtag.js) - Google Analytics