zoukankan      html  css  js  c++  java
  • linux 命令 — xargs

    xargs

    xargs能接收stdin并将其转化为特定命令的命令行参数,构建单行命令的重要工具
    command | xargs

    指定分隔符

    echo "splitXsplitXsplitXsplit" | xargs -d X
    使用"X"作为分隔符分割字符串并单行输出

    指定每行输出参数个数

    echo "splitXsplitXsplitXsplit" | xargs -d X -n 2
    使用"X"分割字符串并每行输出两个参数,每行两个参数之间使用空格隔开

    读取stdin,将格式化参数传递给命令

    cat dir_name.txt | xargs -I {} ls {}
    将dir_name.txt的文件名称作为参数传递给ls,"{}"会被从stdin读取的参数代替,用来指定xargs参数放在后面命令中的位置(因为xargs命令默认是把参数放在后面命令的最后的),也可以使用其他特殊字符代替,例如"@"

    结合find使用xargs

    find . -type f -name "*.txt -print0" | xargs rm -f
    删除当前目录下txt文件(包括文件名中包含空格的txt文件,因为无法判断find输出的风分隔符是" "还是" ",而有些文件名是包含空格的,有可能误删文件名包含空格的文件)

    统计源代码目录中所有C程序的行数

    find source_code_dir -type f -name "*.c" -print0 | xargs -0 wc -l

    结合stdin,巧妙使用whileUI局和子shell

    使用xargs不能将参数传递给多个命令,但是巧妙使用子shell可以实现
    cat files.txt | ( while read arg; do cat $arg; done )
    等同于
    cat files.txt | xargs -I {} cat {}
    但是在上面第一种方法中可以在子shell(使用"()"包括起来的部分)内执行多个命令

  • 相关阅读:
    C# DataSet导出Excel
    MVC学习十四:MVC 路由 Route
    【Ubuntu 16.04.2_64】安装配置SVN
    【Java Web开发学习】Spring MVC 使用HTTP信息转换器
    【Git】常用命令
    【Git】安装配置
    【Git】学习开始
    【JPA】映射
    【JPA】字段访问、属性访问及混合访问
    【JPA】注解@PostConstruct、@PreDestroy
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6799423.html
Copyright © 2011-2022 走看看