博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将文本由行转为列
阅读量:7305 次
发布时间:2019-06-30

本文共 546 字,大约阅读时间需要 1 分钟。

 

今天一个同事问我如何将一列转换成一行,第一想法就是用sed,但是因为sed是行编辑器,所以如下

ls -1 | sed -e "s/\n/ /g"
并不会生效。
于是就告诉他先把要处理的内容放到vi里面,然后用J连接或者:%s/\n/ /g处理。
后来他告诉我这样不够cool(他的原话),于是乎求助google,g到该命令:
ls -1 | tr -s '\n' ' '
如此任务就算完成了,仔细看了一下tr,发现他是一个处理字符的工具,能实现的东西基本都能用sed实现。
于是再研究了一下用sed怎么转换:
ls -1 | sed -ne "H;$ {x;s/\n/ /g;p}"
比起tr来稍微复杂了点,H表示把pattern space 的内容追加到 hold space中去,H可以带一个地址,这里用的是$,表示到文件的末尾,
然后用x将之取到pattern space中,把\n替换成空格再打印即可。
这里用ls -1来作为这个演示程序的输入,如果有多列的文件,要把列转为行怎么做呢?这时可以使用awk将每列取出,然后再按如上方法处理
即可。

转载于:https://www.cnblogs.com/FrankTan/archive/2010/03/23/1692831.html

你可能感兴趣的文章
mysql 创建表
查看>>
一致性Hash与负载均衡
查看>>
Google MapReduce
查看>>
让xocde4.2能够成功联机调试IOS5.1系统,最新最简单方法!
查看>>
为什么2013年云计算先要降虚火?
查看>>
我的友情链接
查看>>
15:银行利息
查看>>
我的友情链接
查看>>
DNS基本配置方法
查看>>
设备冗余技术
查看>>
python 学习笔记01
查看>>
13款Linux运维比较实用的工具
查看>>
开源社区常用的优秀的mirros网站 持续更新
查看>>
在认同中成长
查看>>
angularjs ngSanitize ngRoute ngAnimate 插件
查看>>
Can you find it?
查看>>
matlab常用操作备忘
查看>>
iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
查看>>
笔试题③
查看>>
webpack核心概念
查看>>