广告
返回顶部
首页 > 资讯 > 操作系统 >Linux xargs命令的使用
  • 502
分享到

Linux xargs命令的使用

Linuxxargs命令Linuxxargs 2022-06-03 14:06:54 502人浏览 薄情痞子
摘要

1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可

1.功能:

xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可能会误判。简单来说,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一。

之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如:


find /sbin -perm +700 |ls -l     //这个命令是错误,因为标准输入不能作为ls的参数
find /sbin -perm +700 |xargs ls -l  //这样才是正确的

2.命令格式


xargs [选项] [command]

3.选项说明:


-0:如果输入的stdin含有特殊字符,例如反引号`、反斜杠\、空格等字符时,xargs可以将它还原成一般字符。为xargs的默认选项。
-e <flag>,-E <flag>,--eof=<eof-str>:eof是end of file string的意思。flag可以是一个字符串或者是由空格分隔的多个字符串,当xargs分析到这个flag时,就会停止工作。见示例2。
-p:当每次执行一个argument的时候询问一次用户。
-n <num>:表示命令在执行的时候一次使用的argument的个数,由num指定,默认是用所有的参数。
-t:表示先打印命令,然后再执行。
-a <file>:从文件中读入作为sdtin。
-i[replace-str]:告诉xargs可以使用{}代替从标准输入读取的参数,可以指定替代字符串replace-str,如果没有指定,默认为{}。建议使用-I,其符合POSIX标准。
-I [replace-str]:将xargs的输出每一项参数,单独赋值给后面的命令,参数需要用指定的代替字符串replace-str代替,也就是说replace-str不可缺省,必须显示指明,可以使用{} $ @等符号,其主要作用是当xargs  command后有多个参数时,调整参数位置。例如:find . -name "*.txt"|xargs -I {} cp {} /tmp/{}.bak。
-r:或者--no-run-if-empty,当xargs的输入为空的时候则停止xargs,不用再去执行后面的命令了,-r是xargs的默认选项。
-s <num>:命令行的最大字符数,指的是xargs后面那个命令的最大命令行字符数,包括命令、空格和换行符。每个参数单独传入xargs后面的命令。见示例4。
-L <line_num>:设置标准输入中最大的行数作为命令每一次执行的参数。见示例5。
-d <delim>, --delimiter=<delim>: xargs处理标准输入默认是按换行符和空格作为分隔符,输出arguments的分隔符是空格,这里修改xargs处理标准输入时的分隔符。
-x:eXit的意思,主要是配合-s使用,当命令行字符数大于-s指定的数值时,退出xargs。
-P:修改最大的进程数,默认是1,为0时候为as many as it can。该选项比较少用,目前还不清楚该用法。

4.用法示例

(1)将shell的特殊字符还原为一般字符。


[b3335@MIC ~]$ echo '`0123`4 56789'|xargs -t echo
echo `0123`4 56789 
`0123`4 56789

如果直接进行如下操作,会报无法找到命令01234的错误,因为反引号在shell中会将01234作为一个命令来执行,但是01234不是一个命令。-t表示先打印命令,然后再执行。


[b3335@MIC ~]$ echo `01234` 56789
-bash: 01234: command not found
56789

(2)设置xargs读入参数时的结束标识,以逗号结束。这里要注意结束标志必须要是单独的字段,即以空格或者换行符分隔的字段。


[b3335@MIC ~]$ echo 01234 , 56789|xargs -E ","
01234

(3)使用rm、mv等命令同时操作多个文件时,有时会报”argument list too long”参数列表过长的错误,此时可以使用xargs来解决。xargs将标准输入的字符串分隔后,单独作为参数传递给后面的命令。例如,将当前目录的所有文件添加后缀名。


ls | xargs -t -i mv {} {}.bak

#选择符合条件的文件
ls|grep -E "201701|201702|201703|201704|201705|201706|201707|201708|201709|201710" |xargs -i mv {} {}.bak

(4)设置命令行的最大字符数。参数默认一个一个单独传入命令中执行。


[b3335@MIC test]$ echo "01234 56789"|xargs -t -s 11
echo 01234 
01234
echo 56789 
56789

(5)设置标准输入中每次多少行作为命令的参数,默认是将标准输入中所有行的归并到一行一次性传给命令执行。


[b3335@MIC test]$ echo -e "01234\n56789\n01234" | xargs -t -L 2 echo 
echo 01234 56789 
01234 56789
echo 01234 
01234

(6)将文件内容以空格分隔同行输出。


//列出文件内容
cat test.txt
a b c d e
f g h i j 
k l m n o

//多行输入单行输出: 
cat test.txt | xargs
a b c d e f g h i j k l m n o

(7)与ps、grep、awk和kill结合,强制终止指定进程


ps -ef|grep spp|awk '{printf "%s ",$2}'|xargs kill -9

命令解释:
ps -ef|grep spp用于查找包含spp的进程,awk '{printf "%s ",$2,FNR}将目标进程ID打印输出,xargs kill -9则将目标进程ID作为参数传递给kill -9用于杀死进程。

以上就是linux xargs命令的使用的详细内容,更多关于Linux xargs命令的资料请关注编程网其它相关文章!

--结束END--

本文标题: Linux xargs命令的使用

本文链接: https://www.lsjlt.com/news/11544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux xargs命令的使用
    1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可...
    99+
    2022-06-03
    Linux xargs命令 Linux xargs
  • Linux的xargs命令怎么使用
    这篇文章主要介绍“Linux的xargs命令怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux的xargs命令怎么使用”文章能帮助大家解决问题。Linux常用命令xargs是 exec...
    99+
    2023-06-28
  • Linux中xargs命令的使用方法
    这期内容当中小编将会给大家带来有关Linux中xargs命令的使用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。linux命令可以从两个地方读取要处理的内容,一个是通过命令行参数,一个是标准输入。例如...
    99+
    2023-06-09
  • linux中xargs命令的用法
    这篇文章主要介绍“linux中xargs命令的用法”,在日常操作中,相信很多人在linux中xargs命令的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中xargs命令的用法”的疑惑有所帮助!...
    99+
    2023-06-05
  • Linux中如何使用xargs命令
    这篇文章主要为大家展示了“Linux中如何使用xargs命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何使用xargs命令”这篇文章吧。Linux常用命令xargs 命令 是给...
    99+
    2023-06-28
  • Linux上如何使用xargs命令
    这篇文章给大家分享的是有关Linux上如何使用xargs命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种...
    99+
    2023-06-28
  • Linux xargs命令的用法介绍
    本篇内容介绍了“Linux xargs命令的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!xargs 是给命令传递参数的一个过滤器,...
    99+
    2023-06-05
  • Linux中的xargs命令怎么用
    这篇文章主要介绍Linux中的xargs命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Linux系统中,find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,xa...
    99+
    2023-06-28
  • 怎么在Linux上使用xargs命令
    这篇文章主要介绍怎么在Linux上使用xargs命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢在这种情况下,我们就...
    99+
    2023-06-15
  • Linux中xargs命令怎么用
    小编给大家分享一下Linux中xargs命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 当你使用rm命令去删除很多的文件时,你可能会得到错误信息:“/b...
    99+
    2023-06-16
  • Linux系统中使用xargs命令的教程
    本篇内容主要讲解“Linux系统中使用xargs命令的教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中使用xargs命令的教程”吧!xargs命令有两个要点。第一,你必须列出目...
    99+
    2023-06-13
  • linux系统中如何使用xargs命令
    这篇文章主要介绍linux系统中如何使用xargs命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具,xargs 可以将管道或标准输入(stdin)数...
    99+
    2023-06-28
  • Linux命令中如何使用find和xargs
    本篇文章给大家分享的是有关Linux命令中如何使用find和xargs ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 使用 find 可以查...
    99+
    2023-06-13
  • 如何使用linux shell脚本xargs命令
    本篇内容主要讲解“如何使用linux shell脚本xargs命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux shell脚本xargs命令”吧!xargs是给命令传递参数的...
    99+
    2023-06-09
  • Linux中xargs命令有什么用
    这篇文章主要介绍了Linux中xargs命令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Linux xargs命令1.功能:xargs可以将stdin中...
    99+
    2023-06-09
  • Linux xargs命令详细介绍
    Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他...
    99+
    2022-06-04
    详细介绍 命令 Linux
  • 在Linux上使用xargs命令的详细教程
    大家好,我是良许。 在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令。xargs 可以将一个命令的输出作为参数发送给另...
    99+
    2022-06-03
    Linux上使用xargs命令 Linux xargs命令
  • linux中xargs命令的使用方式是什么
    linux中xargs命令的使用方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。xargs 是给命令传递参数的一个过滤器,可以将管道或标准输入的数据转换成参数,默认...
    99+
    2023-06-28
  • Linux系统xargs命令该怎么用
    这篇文章的内容主要围绕Linux系统xargs命令该怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在使用 Linux 时,你是否遇到过需要将一...
    99+
    2023-06-28
  • Linux 下xargs命令详解及xargs与管道的区别
    为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管...
    99+
    2022-06-04
    详解 管道 命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作