`
zhengdl126
  • 浏览: 2543209 次
  • 性别: 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  是常用组合

 

传送

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    shell学习之printf命令格式化输出语句

    在Linux shell脚本编程中,`printf`是一个非常重要的命令,它用于格式化输出数据,类似于C语言中的`printf()`函数。与`echo`命令相比,`printf`提供了更多的灵活性和控制力,尤其是在处理复杂的输出格式时。这篇文章...

    Linux文件查找命令find,xargs详述

    `xargs`命令则常与`find`结合使用,它可以将`find`输出的文件名作为参数传递给其他命令。例如,使用`-exec`删除所有匹配的文件可能需要用户确认,而通过`xargs`传递给`rm`命令则可以直接删除。基本用法如下: ```...

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

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

    Oracle DBA的UNIX袖珍参考手册.doc

    - `awk '{print $2}'`:`awk`是一种强大的文本处理工具,常用于格式化输出。这里的`awk '{print $2}'`表示打印每行的第二个字段,即进程ID(PID),因为通常情况下,PID位于输出行的第二列。 - `xargs kill -9`:`...

    LINUX与UNIX SHELL编程指南(1-15)

    它可以根据模式匹配进行操作,并且具备内置的变量和函数,可以进行复杂的数据分析和格式化输出。 5. **sed命令** (010-sed 用法介绍.PDF): sed是流编辑器,常用于文本替换、删除、插入等操作。它可以逐行处理文件,...

    shell编程指南全套1

    `awk`则是一个强大的文本分析工具,能处理和格式化数据;`sed`是流编辑器,可以在线编辑文件内容。它们广泛应用于日志分析、数据提取和文本替换等任务。 **6. 环境和Shell变量(14环境和shell变量.pdf)** 环境变量...

    linux-检查网址一个列表的状态

    6. **输出格式化**:如果你需要更整洁的输出,可以利用`printf`进行格式调整,例如: ```bash cat urls.txt | xargs -I {} sh -c 'curl -s --connect-timeout 5 -o /dev/null -w "%s\tCode: %{...

    unix面试试题大全

    最后,通过管道和文本处理工具来格式化输出结果。 ```sh who | wc -l | sed "s/^/&\n/" who ``` 这里,我们首先使用`who`命令列出所有登录用户,然后通过管道传递给`wc -l`来计算行数(即登录用户的数量),接着使用...

    Linux之Shell编程Part_1.rar

    `grep`用于搜索含有特定模式的行,`sed`进行流编辑,`awk`则能处理复杂的文本格式化和分析。这些工具在日志分析、数据提取等方面非常实用。 5. **其他工具**:`01_第一章 文件安全.pdf`讨论了文件权限和所有权,这...

    Unix Power Tools

    3. **awk**:一个强大的文本分析工具,能处理和格式化输出数据,特别适合处理结构化的文本文件,如日志文件。 4. **find**:这个命令用于在文件系统中查找文件,可以根据名称、大小、时间戳等多种条件进行查找。 5...

    Oracle_DBA的UNIX袖珍参考手册

    - **awk**: 强大的文本处理工具,可用于格式化输出。如`awk '{print $2}'`用来打印出第二列数据。 - **xargs**: 通常与`grep`等命令结合使用,用于读取标准输入中的数据并执行命令。例如`xargs kill -9`用于终止...

    linux与unix shell编程指南

    7. **AWK的介绍**(009AWK的介绍.PDF):AWK是一种强大的文本分析工具,用于处理和格式化数据。它支持模式匹配和自定义函数,是处理结构化数据的强大武器。 8. **sed的用法**(010sed的用法.PDF):sed是流编辑器,...

    LINUX与UNIX SHELL编程指南1

    AWK是一种强大的文本分析工具,用于处理和格式化数据。它基于模式匹配,可以在输入文件中搜索特定模式并执行相应的动作。AWK支持内置变量、算术和字符串操作,以及自定义函数,非常适合数据处理和报告生成。 4. **...

    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与UNIX SHELL编程指南.doc

    至于Shell的输入和输出,`echo`命令常用于在终端打印文本,通过`\c`、`\f`、`\t`和`\n`等转义字符控制输出格式。例如,`echo -e "here is a tab\there is two tabs\tok"`会输出带有跳格和换行的字符串。若要输出包含...

    Linux下的程序开发:基础SHELL编程

    在Bash中,我们可以利用`echo`命令打印文本,`read`命令读取用户输入,以及`printf`命令格式化输出。例如,`echo "Hello, $NAME"`会显示“Hello, John”。`read -p "Enter your name: " USER_NAME`会提示用户输入...

    高清Shell基础编程与高级编程的资料

    `awk`是一种文本分析工具,用于处理和格式化文本文件。它的功能强大,包括模式匹配、字段分割、条件判断等,常用于数据处理和报告生成。 8. **sed**(10-sed.pdf): `sed`(流编辑器)允许在文件或输入流中进行...

    linux自动清理日志脚本分享

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

    Linux指令指南

    通过结合`find`和`xargs`,可以实现对文件系统的高效管理和自动化操作,极大地提高了Linux系统管理的灵活性和效率。 #### 结语 `find` 和 `xargs` 是Linux系统管理员不可或缺的工具,它们的强大功能和灵活性使得在...

    LINUX&SHELL命令

    2. **awk命令**:`awk`是一个强大的文本分析工具,用于处理和格式化文件内容。它可以根据指定的模式匹配行,并对匹配到的行进行操作,如打印、替换或计算字段。 3. **sed命令**:`sed`(流编辑器)用于读取、转换并...

Global site tag (gtag.js) - Google Analytics