zoukankan      html  css  js  c++  java
  • 多行变一行 xargs

    https://blog.csdn.net/hjxhjh/article/details/17264739

    1. 采用awk

          awk BEGIN{RS=EOF}'{gsub(/ /," ");print}' file

          说明:awk默认将记录分隔符(record separator即RS)设置为 ,此行代码将RS设置为EOF(文件结束),也就是把文件视为一个记录,然后通过gsub函数将 替换成空格,最后输出。

     

    2. 采用sed

          sed ':a ; N;s/ / / ; t a ; ' file

          说明:sed默认只按行处理,N可以让其读入下一行,再对 进行替换,这样就可以将两行并做一行。但是怎么将所有行并作一行呢?可以采用sed的跳转功能。:a 在代码开始处设置一个标记a,在代码执行到结尾处时利用跳转命令t a重新跳转到标号a处,重新执行代码,这样就可以递归的将所有行合并成一行。

      

    3. cat file | xargs

          说明:这可能是最简单的一种方式。

           This manual page documents the GNU version of xargs. xargs reads argu-

           ments from the standard input, delimited by blanks (which can be pro-

           tected with double or single quotes or a backslash) or newlines

          上面是man手册对xargs的说明。其实xargs就是对shell命令行参数限制做的一个扩展。

          这条命令的含义也很简单,将file中的内容作为参数传给X程序

          如果用echo作为X程序,则命令为:

          cat file | xargs echo

          此命令和cat file | xargs 行为一致,因为xargs的默认行为就是打印输出。

     

    ls |xargs

    默认是输入参数,且换成一行

    ls | xargs -d ‘ ’ echo

    分隔符

    ls |xargs -n 3 echo

    一次给3个参数

    ls |xargs -e ‘22’ echo

    只输出22参数之前的内容,不能-d 公用

    ls |xargs -t echo

    打印之前先打印执行命令

    ls |xargs -I {} echo {}

    ls |xargs -i echo {}

    -I 指定替换符{}, -i 不用指定直接用{} 都是一行一行的给

    支付宝     
    您的资助是我最大的动力!
    金额随意,欢迎来赏!
    微信

    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打       付款后有任何问题请给我留言!!!

    ------------------------------------------------------------------------------------------
    作者:【周sir】
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/zhouguanglu/p/10214608.html
Copyright © 2011-2022 走看看