shell 处理行内容空格怎么办

dajiande 2015-03-23 10:20:11
cc.txt ,文件中间空格数量不定,
1890234323 20:08:ed:03:ac:10 NULL 20150318 1890234323 fw200 33645246 0 010 0
1330165739 NULL 20150318 1330165739 fw200 0 010
1891771227 e0:06:e6:6e:a8:a3 NULL 20150318 1891771227 fw200 1 021 0
1330121326 b8:e8:56:0a:a9:c8 NULL 20150318 1330121326 fw200 136319877 0 010 0

awk '{print $1,$2,$3}' cc.txt,空格行被替换了,
18901234323 20:08:ed:03:ac:10 NULL
13301165739 NULL 20150318
18910771227 e0:06:e6:6e:a8:a3 NULL
13301121326 b8:e8:56:0a:a9:c8 NULL

想得到的结果是 空格部分不被替换,每列以 逗号 或者 | 分隔,都可以,我用
请问如何能展示出下面的结果

1890234323,20:08:ed:03:ac:10,NULL,20150318,1890234323 ,fw200,33645246 ,0,010,0
1330165739, ,NULL,20150318,1330165739 ,fw200, ,0,010,
1891771227,e0:06:e6:6e:a8:a3,NULL,20150318,1891771227 ,fw200, ,1,021,0
1330121326,b8:e8:56:0a:a9:c8,NULL,20150318,1330121326 ,fw200,136319877,0,010,0
...全文
468 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dajiande 2015-04-08
  • 打赏
  • 举报
回复
问题还没解决呢,求解!
奔跑的路 2015-03-24
  • 打赏
  • 举报
回复
引用 5 楼 dajiande 的回复:
结果还是一样,错位了,我这里的空格可能是不定长的,能用数字截取吗?
有错位自己调整一下对其字数就好了,没有缺失信息吧
dajiande 2015-03-24
  • 打赏
  • 举报
回复
结果还是一样,错位了,我这里的空格可能是不定长的,能用数字截取吗?
奔跑的路 2015-03-24
  • 打赏
  • 举报
回复
引用 3 楼 dajiande 的回复:
谢谢楼上的,回复,我刚才执行了下结果,第二行的null,还是前移了,本来他应该在第三行的 18901234323,20:08:ed:03:ac:10,NULL,20150318 ,18901234323,fw200,33645246,0,010,0 13301165739,NULL,20150318,13301165739 ,fw200,0,010,,, 18910771227,e0:06:e6:6e:a8:a3,NULL,20150318 ,18910771227,fw200,1,021,0, 13301121326,b8:e8:56:0a:a9:c8,NULL,20150318 ,13301121326,fw200,136319877,0,010,0
sed "s/[ ]\{16,30\}/ ***************** /g" a | sed "s/[ ]\{8,16\}/ ******** /g"| awk '{ print $1","$2","$3","$4,","$5","$6","$7","$8","$9","$10}'
dajiande 2015-03-24
  • 打赏
  • 举报
回复
谢谢楼上的,回复,我刚才执行了下结果,第二行的null,还是前移了,本来他应该在第三行的 18901234323,20:08:ed:03:ac:10,NULL,20150318 ,18901234323,fw200,33645246,0,010,0 13301165739,NULL,20150318,13301165739 ,fw200,0,010,,, 18910771227,e0:06:e6:6e:a8:a3,NULL,20150318 ,18910771227,fw200,1,021,0, 13301121326,b8:e8:56:0a:a9:c8,NULL,20150318 ,13301121326,fw200,136319877,0,010,0
奔跑的路 2015-03-24
  • 打赏
  • 举报
回复
sed "s/[ ]\{16,30\}/ ***************** /g" a | sed "s/[ ]\{8,16\}/ ******** /g"| awk '{ print $1","$2","$3","$4,","$5","$6","$7","$8","$9","$10}' 前面没注意连续空格的处理
奔跑的路 2015-03-24
  • 打赏
  • 举报
回复
awk '{print $1“,”$2“,”$3}' cc.txt
dajiande 2015-03-24
  • 打赏
  • 举报
回复
缺失数据了,第二行第二列是空格,丢失了

18,771

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧