忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 411 | 回复: 8

[网络相关] 如何使用awk将以下几行变为一行,并以冒号间隔,谢谢! [复制链接]

论坛徽章:
0
发表于 2017-03-20 15:35 |显示全部楼层
如何使用awk将以下几行变为一行,并以冒号间隔,谢谢!
   section 0 142.188.96.0 mask 22
   section 1 142.188.100.0 mask 22
   section 0 142.188.104.0 mask 22
   section 1 142.188.108.0 mask 22

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2016-10-26 14:32:57
发表于 2017-03-20 15:40 |显示全部楼层
awk -vi=0 '{b=sprintf("%s:%s",b,$0)} END{print b}' file|awk '{sub(":","",$0)}END{print $0}'

section 0 142.188.96.0 mask 22:section 1 142.188.100.0 mask 22:section 0 142.188.104.0 mask 22:section 1 142.188.108.0 mask 22

论坛徽章:
50
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之上海
日期:2016-03-18 19:25:4615-16赛季CBA联赛之新疆
日期:2016-03-19 12:08:3715-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:23
发表于 2017-03-20 15:42 |显示全部楼层
  1. awk -vORS=: 1 file
复制代码

论坛徽章:
0
发表于 2017-03-20 16:46 |显示全部楼层
回复 2# StarWingsss


谢谢
不过我执行完是以下结果:
:   section 1 42.88.108.0 mask 22

论坛徽章:
1
15-16赛季CBA联赛之江苏
日期:2016-10-26 16:19:04
发表于 2017-03-20 16:52 |显示全部楼层
awk  -vORS=":"  '$0=$0' file

论坛徽章:
0
发表于 2017-03-21 08:46 |显示全部楼层
要把每行单独做为文件,再走文件合并,这样麻烦些,但可以实现

论坛徽章:
0
发表于 2017-03-21 08:47 |显示全部楼层
希望可以有更好的方法,谢谢

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2016-10-26 14:32:57
发表于 2017-03-21 10:45 |显示全部楼层
回复 4# lpingx2003

你可能输入了
awk '{b=sprintf("%s:%s",b,$0)} END{print b}' file|awk '{sub(":","",$0)}END{print $0}' file


实际上我的回答是
awk '{b=sprintf("%s:%s",b,$0)} END{print b}' file|awk '{sub(":","",$0)}END{print $0}'

我验证了几次是没有问题的


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2016-10-26 14:32:57
发表于 2017-03-21 10:45 |显示全部楼层
回复 4# lpingx2003

你可能输入了
awk '{b=sprintf("%s:%s",b,$0)} END{print b}' file|awk '{sub(":","",$0)}END{print $0}' file


实际上我的回答是
awk '{b=sprintf("%s:%s",b,$0)} END{print b}' file|awk '{sub(":","",$0)}END{print $0}'

我验证了几次是没有问题的


您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP