当前位置: 首页 > news >正文

linux xargs命令学习

  1. 命令描述

    xargs从标准输入中读取默认以空格分隔的项(可以使用双引号保护空格)(或单引号或反斜杠)或换行符,并执行命令(默认为/bin/echo)一次或多次,后面跟着任何初始参数从标准输入中读取的项。标准输入中的空行将被忽略。

  2. 参数了解

     -0, --null
        	输入的参数包含单引号,双引号,反斜线都会被打印出来,并且以空字符作为分隔符
     -a file, --arg-file=file
          	输入的参数从文件中获取,可以使用-d指定分隔符。
     --delimiter=delim, -d delim
     		指定分隔符,可以是单个字符 \n 或八进制或十六进制转义码。
     -i[replace-str], --replace[=replace-str]
            不需要指定{},可以直接使用其他命令对 {} 进行迭代操作。例如: cut -d: -f1 < /etc/passwd | xargs -i echo {}
     -I replace-str
            将读取的项保存到 {} ,可以使用其他命令对 {} 进行迭代操作。例如: cut -d: -f1 < /etc/passwd | xargs -I {} echo {}
     -L max-lines
            指定执行命令时使用的最大行数,例如,-L 3表示每次将连续3行的内容合并为一个参数组传递给命令。默认以换行符\n作为行分割符。可以使用-d参数自定义分隔符。
     -n max-args, --max-args=max-args
     		指定每个命令行每次最多可以使用多少参数。
     -P max-procs, --max-procs=max-procs
            指定一次运行最多的进程数,为0表示根据系统资源运行尽可能多的进程
     -p, --interactive
     	    提示用户是否运行这个命令,y or Y确定
     --process-slot-var=name
            用于在每个子进程中设置一个唯一的环境变量值,通常与-P 参数一起使用,以实现简单的负载均衡或区分不同的子进程。当你使用 xargs 并行运行多个进程时,--process-slot-var=name 会为每个子进程设置一个唯一的环境变量值。这些值是递增的整数,从 0 开始,一旦子进程退出,该值会被重用
     -r, --no-run-if-empty
            如果检测到没有传递任何参数,则直接退出。
     -s max-chars, --max-chars=max-chars
           用于控制单次命令行的最大字符长度 的参数,超过该值会自动将参数拆分为多次执行;使用 xargs --show-limits 查看系统的默认参数大小,最大参数最小参数.
     --show-limits
     	   用于显示当前系统对命令行参数长度的限制,包括环境变量占用的空间、最大允许的命令行长度、xargs 默认的缓冲区大小等.
     -t, --verbose
           在执行命令前,将执行的命令打印在控制台.
     --help 
           获取帮助信息
     --version             
      	   获取版本并退出
    
  3. 示例:
    有如下文件:

    root@kvm-server opt]# cat xargs.txt
    "argument01","argument02","argument03","argument04","argument05"
    

    3.1. 从文件xargs.txt中打印所有参数。

    [root@kvm-server opt]# xargs -a xargs.txt
    argument01,argument02,argument03,argument04,argument05
    

    3.2. 从文件xargs.txt中打印所有参数,并指定 , 分隔符。

    [root@kvm-server opt]# xargs -d , -a  xargs.txt
    "argument01" "argument02" "argument03" "argument04" "argument05"
    

    3.3. 从管道中获取参数,并使用echo一个一个打印出来

    [root@kvm-server opt]# cat  xargs.txt | xargs -d , -i echo {}
    "argument01"
    "argument02"
    "argument03"
    "argument04"
    "argument05"
    

    3.3. 指定执行命令时使用的最大行数

    [root@kvm-server opt]# cat  xargs.txt | xargs -d ,
    "argument01" "argument02" "argument03" "argument04" "argument05"
    
    [root@kvm-server opt]# cat  xargs.txt | xargs -d , -L 3
    "argument01" "argument02" "argument03"
    "argument04" "argument05"
    
    [root@kvm-server opt]# cat  xargs.txt | xargs -d , -L 5
    "argument01" "argument02" "argument03" "argument04" "argument05"
    

    3.4 指定每个命令行每次最多可以使用多少参数

    [root@kvm-server opt]# cat  xargs.txt | xargs -d , -n 3
    "argument01" "argument02" "argument03"
    "argument04" "argument05"
    
    [root@kvm-server opt]# cat  xargs.txt | xargs -d , -n 5
    "argument01" "argument02" "argument03" "argument04" "argument05"
    

相关文章:

  • Flink TaskManager之间数据传输(NetworkManager)
  • MySQL进阶 面试速记
  • 基于 docker 的 LLaMA-Factory 全流程部署指南
  • 开发体育直播即时比分系统:赛事收藏功能的技术实现方案
  • vscode集成deepseek实现辅助编程(银河麒麟系统)【详细自用版】
  • Android学习总结之Kotlin 协程
  • presto行转列
  • Vulnhub-zico2靶机打靶记录
  • ML 聚类算法 dbscan|| OPTICS|mean-shift
  • C语言基础系列【32】指针进阶5:指针与常量
  • 上市电子制造企业如何实现合规的质量文件管理?
  • 0301-组件基础-react-仿低代码平台项目
  • 【AI微信小程序开发】AI减脂菜谱小程序项目代码:根据用户身高/体重等信息定制菜谱(含完整前端+后端代码)
  • 爱心计算器:用 Python 创建带有动态爱心效果的计算器
  • Ubuntu20.04安装OpenVINO环境以及YOLOv8 C++部署测试
  • Android里面内存优化
  • 【Redis】基础1:基本概念,基本数据结构
  • Git操作指南
  • Python数据类型-int
  • JavaScript基础-触屏事件
  • 五一假期天气将大转变,南方新一轮降雨来袭
  • 重庆市大渡口区区长黄红已任九龙坡区政协党组书记
  • 5月1日全国铁路发送旅客2311.9万人次,创历史新高
  • 美国防部监察机构扩大“群聊门”事件调查范围
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 人民日报评论员:因势利导对经济布局进行调整优化