将多行文件转换为一行

        今天一个新来的同事问我,怎么将一个文件中的多行转换成一行。

        我给出了如下三种方法:

 

          1. 采用awk

 

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

 

          2. 采用sed

 

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

 

          3. 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程序,则命令为:

             此命令和

             行为一致,因为xargs的默认行为就是打印输出。

 

           unix的一些工具设计很巧妙,每一项工具仅专注于完成一个功能。往往组合起来就能实现很强大的功能。2年前刚刚工作的时候非常喜欢玩弄各种工具,拼凑完成运维的任务。和代码完成的功能一样,但却能顺手拈来,省掉了冗长的程序代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值