Linux命令--xargs(将命令的结果作为参数)

这篇具有很好参考价值的文章主要介绍了Linux命令--xargs(将命令的结果作为参数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文网址:Linux命令--xargs(将命令的结果作为参数)_IT利刃出鞘的博客-CSDN博客

简介

        本文介绍Linux的xargs命令的用法。

xargs的作用

概述

        xargs是给命令传递参数的一个过滤器,也是组合多个命令的工具。

        xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs的功能

        可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

        可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

使用场景

        很多命令不支持|管道来传递参数,而日常工作中有这个必要,所以就有了 xargs 命令。例如:找到本目录下文件名是.txt结尾的文件并使用ls -l查看它的详细信息。

错误方法:

find -name '*.txt' | ls -l

正确方法:

find -name '*.txt' | xargs ls -l

命令格式

command1 | xargs -option command2

选项

含义

-a,--arg-file=file

从文件中读入作为sdtin

-0,--null 以\0作为分隔符,接受到的特殊字符将当作文本符号处理

-e/-E  flag

flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。

-p

每执行一个argument的时候询问一次用户

-n num

后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的

-t

先打印命令,然后再执行

-i/-I

看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。         

-r no-run-if-empty

当xargs的输入为空的时候则停止xargs,不用再去执行了。

-l/-L num

从标准输入一次读取 num 行送给 command 命令。       

-d delim

分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。        

-x

exit的意思,主要是配合-s使用。。

-P

修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

示例

查找并显示文件详情

​find -name '*.txt' -print0 | xargs -0 ls -l

查找并删除文件

找到本目录下文件名是.txt结尾的文件并删除它。

find -name '*.txt' -print0 | xargs -0 rm -rf

查找并复制文件

复制所有图片文件到 /data/images

ls *.jpg | xargs -n1 -I {} cp {} /data/images

查找并压缩文件

查找所有的 jpg 文件,然后压缩它们

find -name "*.jpg" -print | xargs tar -czvf images.tar.gz

统计文件的行数

find -name "*.php" -print0 | xargs -0 wc -l

控制输出格式

测试文件的内容(test.txt)

a b c d e f g
h i j k l m n
o p q

单行输出

cat test.txt | xargs

结果

a b c d e f g h i j k l m n o p q

指定列数输出

cat test.txt | xargs -n3

结果

a b c
d e f
g h i
j k l
m n o
p q

指定分隔符

echo "nameXnameXnameXname" | xargs -dX

运行结果:

name name name name

压缩输入中重复的字符

echo "thissss is      a text linnnnnnne." | tr -s ' sn'

结果文章来源地址https://www.toymoban.com/news/detail-406779.html

this is a text line.

到了这里,关于Linux命令--xargs(将命令的结果作为参数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】Shell脚本中获取命令运行的结果

    写shell脚本的时候,常需要将一个命令的运行结果做为参数传递给另外一个命令,除了我们熟知的管道 | 和args,我们也可以通过获取命令的运行结果。 执行结果: 来点复杂的应用: 再比如: 😉 运行结果: 把反引号``换成$()即可 反引号不支持嵌套,而 $ 支持嵌套。 举个例

    2024年02月11日
    浏览(40)
  • Python爬虫-爬取百度搜索结果页的网页标题及其真实网址

    cmd命令行输入安装requests库:pip3 install -i https://pypi.douban.com/simple requests 安装bs4库:pip3 install -i https://pypi.douban.com/simple beautifulsoup4   https://wwuw.lanzouj.com/i1Au51a0312d 解压文件后,需按照解压包内教程装载Cookie即可使用。 本py脚本文件较符合有需求者使用,更适合python爬虫初学者

    2024年02月08日
    浏览(51)
  • Linux批量文件操作——基于find-xargs

    在项目初创阶段,经常会遇到各种文件操作,拷贝头文件,库,批量重命名等。文件结构一复杂,这就将是个无聊的工作。 find 可以在目录结构中搜索文件,这是它在 man 里面的作用描述。那么怎么搜索呢?有多种方式,按文件时间,大小,按文件名,路径名,按文件类型,

    2024年02月09日
    浏览(44)
  • linux | sort、uniq、history、xargs、grep 正则表达式(不深入)

    1.正则表达式 sort命令 #把内容读到内存,然后以行为单位进行排序并把结果输出到stdout(因为直接把排序结果输出,所以可以重定向),但是并不修改源文件内容。 参考如下 uniq命令 #流程和sort类似,也是把相邻的相同行去掉,最后输出。注意间隔的相同行无法去除。 如何把

    2024年02月16日
    浏览(45)
  • Linux常用命令及其参数释义

    本文基于内核版本Cent OS 7.6 做阐述。 ls:列出当前目录中的文件和子目录。参数:-l 列出详细信息,-a 列出所有文件,包括隐藏文件,-h 以易读格式列出文件大小。 cd:改变当前目录。参数:目录名。 mkdir:创建新目录。参数:目录名。 rm:删除文件或目录。参数:-r 以递归

    2024年02月05日
    浏览(34)
  • 【Linux】28、命令行参数 语法格式

    命令行参数很复杂,通过 --help 会看到很多符号,比如 [] {} () | …,他们都是什么意思呢?一般格式如下: 示例如下: 命令行常见符号: 没有括号包裹的是必填参数,如: fileName 没有被括号包裹,所以是必填参数 表示可选 即 ls 命令的 -a -l -r -t -A -F -R 和 name 都是可选的 大

    2024年02月22日
    浏览(42)
  • Linux——使用命令行参数管理环境变量

    目录 使用命令行参数获取用户在DOS命令行输入的指令:         方法:代码如下: 使用命令行参数获取并打印部分或者整体环境变量的方法:  方法1:  运行结果: 方法2:使用外部链接environ:         方法:代码如下:    上方代码解析:          argc : 命令行传

    2024年02月07日
    浏览(43)
  • Linux:进程优先级与命令行参数

    目录 1.进程优先级 1.1 基本概念 1.2 查看系统进程 1.3 修改进程优先级的命令 2.进程间切换 2.1 相关概念 2.2 Linux2.6内核进程调度队列(了解即可) 3.命令行参数 cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务

    2024年02月05日
    浏览(38)
  • [Linux]命令行参数和进程优先级

    命令行参数的概念 命令行参数是指用于运行程序时在命令行输入的参数。 命令函参数的接收 C语言中main函数有两个参数用于接收命令行参数,分别是argc和argv,main函数的参数即使没有显式说明,编译器也会自动在编译是添加并且接收参数,只是不显式说明无法使用参数: 在运

    2024年02月10日
    浏览(43)
  • 如何理解 Linux 命令行参数与环境变量7

    1.1参数介绍 在写C语言程序时,main函数是否可以带参数呢?------ 是可以的 int argc: 命令行参数的个数 char *argv[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这些参数存着什么信息: 运行结果: 直接运行数组中只保存了一个元

    2024年03月27日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包