zoukankan      html  css  js  c++  java
  • xargs命令的使用

      

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

    它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。

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

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

    xargs是构建单行命令的重要组件之一。

    xargs命令用法

      xargs用作替换工具,读取输入数据重新格式化后输出。

      (1)定义一个测试文件,内有多行文本数据:

        

      (2)多行输入单行输出:

        

      (3)-n选项多行输出:(每三个元素一行)

         

      (4)-d选项可以自定义一个定界符:

        

      (5)结合-n选项使用:

        

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

       假设一个命令为 sk.sh 和一个保存参数的文件arg.txt:

         

       arg.txt文件内容:

        

       xargs的一个选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次:

         

    xargs结合find使用 

       用rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用xargs去避免这个问题:

      find . -type f -name "*.log" -print0 | xargs -0 rm -f

      xargs -0将作为定界符。

      (1)统计一个源代码目录中所有txt文件的行数:

         

      (2)查找所有的jpg 文件,并且压缩它们:

         

    xargs其他应用

    假如你有一个文件包含了很多你希望下载的URL,你能够使用xargs下载所有链接:

        

  • 相关阅读:
    LeetCode 83. Remove Duplicates from Sorted List (从有序链表中去除重复项)
    LeetCode 21. Merge Two Sorted Lists (合并两个有序链表)
    LeetCode 720. Longest Word in Dictionary (字典里最长的单词)
    LeetCode 690. Employee Importance (职员的重要值)
    LeetCode 645. Set Mismatch (集合不匹配)
    LeetCode 500. Keyboard Row (键盘行)
    LeetCode 463. Island Perimeter (岛的周长)
    115.Distinct Subsequences
    55.Jump Game
    124.Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/yuanqiangfei/p/8310841.html
Copyright © 2011-2022 走看看