• 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(使用"()"包括起来的部分)内执行多个命令

  • 相关阅读:
    CSS浏览器兼容问题大全
    JavaScript游戏之飞机接子弹
    Html5小游戏之变大的小球
    JavaScript游戏之小型打飞机
    JavaScript游戏之是男人就飞10000米
    JavaScript无聊打地鼠
    JavaScript游戏之优化篇
    前端开发的开始基于OO的Ajax类
    JavaScript游戏之仿劲舞团(简陋版)
    仿JQuery的show与hide动画函数
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6799423.html
Copyright © 2020-2023  润新知