将标准输入stdin转换成命令行参数——Unix中的xargs指令

news2024/9/21 23:44:51

xargs是Unix中的复合指令加工机,联合管道符“|”将制造更加强大的“复杂”指令组合。


(笔记模板由python脚本于2024年08月22日 18:13:51创建,本篇笔记适合喜欢Linux的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


Unix中的复合指令加工机
Unix中的xargs指令
(“|”加持将制造更加强大的“复杂”组合指令)


本文质量分:

97 97 97

本文地址: https://blog.csdn.net/m0_57158496/article/details/141434775

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ Unix中的xargs指令
    • 1、xargs
      • 1.1 基本功能
      • 1.2 使用场景
      • 1.3 常见用法
      • 1.4 选项
      • 1.5 注意事项
    • 2、管道符“|”
      • 2.1 基本概念
      • 2.2 工作原理
      • 2.3 基本用法
    • 3、能与xrags、“|”配伍的指令
      • 3.1 grep
      • 3.2 awk
      • 3.3 sed
      • 3.4 find
      • 3.5 sort
      • 3.6 uniq
      • 3.7 cut
      • 3.8 tr
      • 3.9 wc
      • 3.10 tee
      • 3.11 curl/wget
      • 3.12 tar
      • 3.13 chmod/chown/chgrp
      • 3.14 ps/top
      • 3.15 iptables/firewall-cmd


◆ Unix中的xargs指令


1、xargs


  xargs 是一个在 Unix 和类 Unix 系统中非常有用的命令行工具。它的主要功能是将标准输入(stdin)转换成命令行参数,从而可以用来构建和执行“复合”命令行指令。


1.1 基本功能

  • xargs 可以从标准输入读取数据,并将其转换为命令行参数。
  • 它通常与管道命令一起使用,用于传递参数给那些不接受标准输入作为参数的命令。
  • 默认情况下,xargs 的命令是 echo,这意味着它会将输入的数据转换为以空格分隔的参数。

1.2 使用场景

  • 当你需要将一个命令的输出作为另一个命令的参数时,xargs 非常有用。
  • 例如,find 命令通常与 xargs 结合使用来处理搜索到的文件。

1.3 常见用法

  • 基本格式是 somecommand | xargs -options command
  • 例如,echo "one two three" | xargs mkdir 相当于执行 mkdir one two three

1.4 选项

  • -a file:从文件中读取输入。
  • -n num:指定每次命令执行时使用的参数个数。
  • -t:在执行命令前打印命令。
  • -I:将 xargs 的每项输入赋值给指定的替换字符串。
  • -P:指定最大的并发进程数。

1.5 注意事项

  • xargs 在处理包含空格或换行的文件名时可能会遇到问题,这种情况下可以使用 -0 选项来避免问题。

  xargs 是一个功能强大且灵活的工具,常用于脚本和命令行自动化任务中。更多详细信息和示例,可以参考菜鸟教程 、阮一峰的网络日志和 Linux 手册页 。


以下是三个宝藏资源的链接地址

1. 菜鸟教程:这是一个非常流行的编程学习网站,提供了各种编程语言和技术的基础教程。您可以访问菜鸟教程的官方网站 菜鸟教程:https://www.runoob.com/。

2.  阮一峰的网络日志:阮一峰的网络日志是一个深受欢迎的技术博客,主要分享编程、前端、互联网、人工智能等领域的知识和见解。您可以访问阮一峰的网络日志的官方网站 阮一峰的网络日志:https://www.ruanyifeng.com/。

3.  Linux 手册页:Linux 手册页是 Unix 和 Linux 操作系统的在线软件文档,包含了大量关于 Unix/Linux 命令的详细信息。要访问 Linux 手册页,通常需要在 Linux 系统中使用 man 命令。例如,要查看 ls 命令的手册页,可以在命令行中输入 man ls。此外,还有一个简化的、社区驱动的手册页集合,名为 TLDR 页面,它提供了命令的简明示例和说明,可以通过 TLDR 页面(https://cn.linux-console.net/tldr_pages.html) 进行访问。



回页目录


2、管道符“|”


  在 Linux 和类 Unix 操作系统中,管道符 | 是一个非常核心和重要的概念,它是命令行界面的基本组成部分之一。


2.1 基本概念


  管道符 | 用于在命令行中将一个命令的输出(标准输出,stdout)重定向为另一个命令的输入(标准输入,stdin)。这样就可以构建一个命令链,每个命令的输出都成为下一个命令的输入。

2.2 工作原理


  当你在命令行中使用管道时,系统实际上创建了一个无名管道,第一个命令的输出被写入这个管道,而第二个命令从这个管道读取输入。这个过程是自动的,不需要用户干预。


2.3 基本用法


管道符的基本用法非常简单,格式如下:


command1 | command2

这里,command1 的输出将作为 command2 的输入。


以下是一些使用管道符的示例

  • 查看文件内容并排序
    
    cat filename.txt | sort
    
    
    这个命令将 filename.txt 的内容输出并通过管道传递给 sort 命令,然后 sort 命令对这些内容进行排序。

  • 列出当前目录下的文件和文件夹,并搜索包含特定文本的文件
    
    ls -l | grep "特定文本"
    
    
    ls -l 列出当前目录下的文件和文件夹的详细信息,然后 grep "特定文本" 通过管道过滤出包含“特定文本”的行。

  • 结合 xargs 使用
    
    find . -name "*.txt" | xargs cat
    
    
    这个命令首先使用 find 查找当前目录及其子目录下所有 .txt 文件,然后通过管道将找到的文件列表传递给 xargs,最后 xargs 将这些文件名作为参数传递给 cat 命令,从而输出这些文件的内容。

注意事项

  • 管道只能处理标准输出,不能直接处理标准错误输出(stderr)。如果需要同时处理 stderr,可以使用 2>&1 将 stderr 重定向到 stdout。
  • 管道符 | 两侧的命令是并行执行的,但是数据流是顺序的,即第二个命令会在第一个命令开始输出后立即开始处理输入。

  管道符|,是命令行操作中实现数据处理和转换的强大工具,它使得多个命令可以协同工作,完成复杂的数据处理任务。



回页目录


3、能与xrags、“|”配伍的指令


  Linux 提供了许多功能强大的命令行工具,它们可以与管道符 |xargs 结合使用,或者独立使用来执行复杂的任务。


以下是一些这样的命令行指令

3.1 grep

  • 用于搜索文本文件中的特定模式。
  • 示例:grep "pattern" file.txt

3.2 awk

  • 用于模式扫描和处理文本数据。
  • 示例:echo "1 2 3" | awk '{print $1}'(打印第一列)

3.3 sed

  • 用于流编辑器,执行基本的文本替换操作。
  • 示例:sed 's/old/new/g' file.txt(将文件中的 “old” 替换为 “new”)

3.4 find

  • 用于在目录树中搜索文件。
  • 示例:find . -name "*.txt"(查找当前目录下所有 .txt 文件)

3.5 sort

  • 用于对文本文件中的行进行排序。
  • 示例:sort file.txt

3.6 uniq

  • 用于报告或忽略文件中的重复行。
  • 示例:sort file.txt | uniq(排序并去除重复行)

3.7 cut

  • 用于从每行中提取文本列。
  • 示例:cut -d' ' -f1 file.txt(以空格为分隔符,提取第一列)

3.8 tr

  • 用于转换或删除文本中的字符。
  • 示例:echo "Hello World" | tr '[:upper:]' '[:lower:]'(将大写转换为小写)

3.9 wc

  • 用于打印文件中的行数、单词数、字节数。
  • 示例:wc -l file.txt(打印文件的行数)<'sub>

3.10 tee

  • 用于读取标准输入的数据,并将其同时输出到标准输出和文件中。
  • 示例:ls | tee output.txt(列出目录内容并保存到文件)

3.11 curl/wget

  • 用于从网络上下载文件。
  • 示例:curl -O URLwget URL

3.12 tar

  • 用于打包和压缩文件。
  • 示例:tar -czvf archive.tar.gz /path/to/directory

3.13 chmod/chown/chgrp

  • 用于更改文件权限和所有权。
  • 示例:chmod 755 file.txt(设置文件权限)

3.14 ps/top

  • 用于查看系统进程。
  • 示例:ps auxtop

3.15 iptables/firewall-cmd

  • 用于配置网络防火墙规则。

  这些命令可以单独使用,也可以通过管道、重定向和条件逻辑(如 ifwhilecase 等)组合使用,以执行复杂的数据处理和系统管理任务。Linux 的强大之处在于这些基本工具的组合使用,可以实现几乎任何你想执行的任务。


  关于管道符“|” + xargs组建Linux命令行“复合”指令操作文件复制的示例,请点击蓝色文字跳转CSDN优质博主刘好念的博文Linux命令行指令复制文件操作,阅读赏鉴。



回页首


上一篇:  字符串玩转Excel单元格引用(indirect是Excel唯一可以拥有直接解析字符串引用地址参数能力的函数,是绝无仅有的宝贝疙瘩)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。

  • 001
    标题:让QQ群昵称色变的神奇代码
    (浏览阅读 5.9w )
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:25 收藏:86 评论:17
    摘要:让QQ昵称色变的神奇代码。
    首发:2022-01-18 19:15:08
    最后编辑:2022-01-20 07:56:47

  • 002
    标题:Python列表(list)反序(降序)的7种实现方式
    (浏览阅读 1.1w )
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:8 收藏:35 评论:8
    摘要:Python列表(list)反序(降序)的实现方式:原址反序,list.reverse()、list.sort();遍历,全数组遍历、1/2数组遍历;新生成列表,resersed()、sorted()、负步长切片[::-1]。
    首发:2022-12-11 23:54:15
    最后编辑:2023-03-20 18:13:55

  • 003
    标题:pandas 数据类型之 DataFrame
    (浏览阅读 9.7k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:7 收藏:36 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    首发:2022-05-01 13:20:17
    最后编辑:2022-05-08 08:46:13

  • 004
    标题:个人信息提取(字符串)
    (浏览阅读 8.2k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:2 收藏:15 
    摘要:个人信息提取(字符串)_个人信息提取python。
    首发:2022-04-18 11:07:12
    最后编辑:2022-04-20 13:17:54

  • 005
    标题:Python字符串居中显示
    (浏览阅读 7.6k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    评论:1

  • 006
    标题:罗马数字转换器|罗马数字生成器
    (浏览阅读 7.5k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    摘要:罗马数字转换器|生成器。
    首发:2022-01-19 23:26:42
    最后编辑:2022-01-21 18:37:46

  • 007
    标题:回车符、换行符和回车换行符
    (浏览阅读 6.0k )
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    首发:2022-02-24 13:10:02
    最后编辑:2022-02-25 20:07:40


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构与算法】使用哈夫曼编码压缩文本

哈夫曼编码原理 哈夫曼编码属于一种基于字符出现频率的贪心算法&#xff0c;其通过构建哈夫曼树&#xff0c;为文本中的每一个字符赋予独一无二的二进制编码。频率较高的字符会被分配较短的编码&#xff0c;而频率较低的字符则会被分配较长的编码&#xff0c;以此达成压缩数据…

通过模板级知识蒸馏进行掩模不变人脸识别

Mask-invariant Face Recognition through Template-level Knowledge Distillation 创新点 1.提出了一种掩模不变人脸识别解决方案&#xff08;MaskInv&#xff09;&#xff0c;该解决方案在训练范式中利用模板级知识蒸馏&#xff0c;旨在生成与相同身份的非蒙面人脸相似的蒙面…

上半年大模型遍地开花,大模型发展中有哪些经验和教训?

前言 过去一年里&#xff0c;大模型遍地开花&#xff0c;我自己也在做大模型训练相关的工作&#xff0c;踩过了很多很多坑&#xff0c;这里分享一些教训&#xff1a;用成熟的分布式训练框架&#xff1a; 多用 DeepSpeed&#xff0c;少用 Pytorch 原生的 torchrun。在节点数量较…

Android settings命令讲解和实战

1&#xff0c;简介 在Android系统中&#xff0c;settings命令用于管理设备设置。这些命令可以与Settings提供者&#xff08;Settings provider&#xff09;交互&#xff0c;后者是一个用于存储和检索系统设置的系统服务。Settings provider在Android系统中可以被看作是一个特殊…

垃圾目标检测数据集

垃圾目标检测数据集。数据集已经标注好&#xff0c;txt标注&#xff0c;YOLO格式&#xff0c;适用于训练YOLO系列目标检测模型&#xff08;YOLO5 YOLO8 YOLO9 YOLO10等&#xff09;数据集已经划分好训练集&#xff08;4526张图&#xff09;验证集&#xff08;1046张图片&#x…

Git 分支操作全解析:创建、切换、合并、删除及冲突解决

“ 在现代软件开发中&#xff0c;高效的版本控制是确保项目成功的关键。Git 提供了强大的分支管理功能&#xff0c;使得开发者能够独立地进行功能开发、修复 bug 和进行紧急修补。本文将深入探讨 Git 分支的基本操作&#xff0c;包括创建、切换、合并和删除分支&#xff0c;同时…

使命同心,六西格玛同行,顶尖人才扎堆来!——张驰咨询

在当今竞争激烈的商业环境中&#xff0c;顶尖人才不仅是企业创新与突破的源泉&#xff0c;更是决定企业成败的关键因素。如何有效吸引并长期留住这些宝贵资源&#xff0c;成为企业家们亟待解决的难题。企业文化、领导风格以及先进的管理方法&#xff0c;如六西格玛&#xff0c;…

两个视频如何合成一个视频?推荐8个视频合并方法

两个视频如何合成一个视频&#xff1f;在数字时代&#xff0c;视频内容的创作和编辑变得越来越普及。无论是在个人项目还是专业制作中&#xff0c;将两个视频合并成一个已成为常见需求。这一操作不仅能提高视频内容的连贯性&#xff0c;还能增强观众的观看体验。下面&#xff0…

大模型火了一年半,AI应用如何实现商业变现?

自ChatGPT走红后&#xff0c;国内AI大模型建设潮起&#xff0c;如今经过一年半的快速发展后&#xff0c;大模型商业化显著提速。自生成式AI席卷各行业以来&#xff0c;市场对AI应用发展的预期高涨&#xff0c;但AI应用似乎陷入“增长难题”&#xff0c;进展不及预期&#xff0c…

Java筑基之路:数组的深入了解学习!

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;小菜元 &#x1f35f;博客主页…

科技温柔拥抱梦乡!康姿百德柔压磁性枕舒适与科技的甜蜜邂逅

解锁未来睡眠新姿势&#xff01;康姿百德柔压磁性枕&#xff0c;科技护航每一夜好梦 在现代家居产品的设计中&#xff0c;科技与舒适性的结合越来越受到人们的关注。康姿百德柔压磁性枕正是一款将科技与舒适结合的产品&#xff0c;为现代生活注入了新的活力。 康姿百德柔压磁性…

【发邮件】 在邮件中添加 (mailto:) 链接的返回电子邮件

&#x1f433;打工人给导师发邮件&#xff0c;注意格式中学到的一个东西&#xff0c;记录一下 发送邮件想达到点击这个邮件就能到收件人的位置&#xff0c;不用跳转。 也就是你点击这个邮件 就能直接给你蹦到发送这个人&#xff0c;然后直接发送 只需要在邮件那个位置 加入超…

语言大模型的分布式训练与高效微调指南

最近语言大模型&#xff08;LLM&#xff09;异常火爆&#xff0c;一个非常特别的开源社区正在探索在消费级硬件上微调、提供服务和进行推理的最佳方式。为满足上述需求&#xff0c;出现了许多出色的开源代码库&#xff0c;以HuggingFace生态系统为中心&#xff0c;这些代码库还…

【干货】看看我司消息队列用啥,全网最接地气pulsar教程(含业务解耦demo源码)

前言 &#x1f34a;缘由 消息队列一出手&#xff0c;pulsar就知有没有 &#x1f423;闪亮主角 大家好&#xff0c;我是JavaDog程序狗 今天跟大家分享pulsar&#xff0c;一个分布式的消息发布/订阅传递平台。 本狗以身入局&#xff0c;将pulsar的使用场景&#xff0c;结合实…

【flask框架搭建服务器demo】Python 使用轻量级 Flask 框架搭建 Web 服务器可视化数据库数据demo

本文适合刚入门flask框架用来熟悉项目的开发人员&#xff0c;关于flask框架的组成概念一些用法请参考下面的文章 https://blog.csdn.net/qq_47452807/article/details/122289200 本文主要给出一个可视化sqlite数据库数据的demo&#xff0c;先展示一下效果&#xff1a; 主要的…

前端速通面经八股系列(二)—— HTML篇

HTML高频面经八股目录 1. src和href的区别2. 对HTML语义化的理解3. DOCTYPE(⽂档类型) 的作⽤4. script标签中defer和async的区别5. 常⽤的meta标签有哪些6. HTML5有哪些更新1. 语义化标签2. 媒体标签3. 表单4. 进度条、度量器5.DOM查询操作6. Web存储7. 其他 7. img的srcset属…

Python 图像处理进阶:特征提取与图像分类

特征提取 特征提取是计算机视觉中的一个重要环节&#xff0c;它可以从图像中提取出有助于后续处理的特征&#xff0c;比如用于识别和分类的关键点、纹理等。常见的特征提取方法包括SIFT、SURF和ORB等。 SIFT&#xff08;尺度不变特征变换&#xff09; SIFT是一种用于检测图像…

Web-ssrfme--redis 未授权访问攻击

目录 1、题目源码 2、测试ssrf 3、发现主机 4、发现服务 5、redis 未授权访问攻击 6&#xff0c;拿flag 1、题目源码 <?php highlight_file(__file__); function curl($url){ $ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER…

用Maven开发Spring Boot 项目

一、初识 Spring Boot Spring Boot框架是一 套开源的后台开发框架&#xff0c; 继承了Spring MVC框架的前辈SSM框架的优秀特性&#xff0c;通过注解大幅减少程序员写配置的工作量。从企业开发角度来看&#xff0c;它提供了自动化配置&#xff0c;内嵌容器和兼容Maven等核心功…