免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3122 | 回复: 10
打印 上一主题 下一主题

awk的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-06 15:00 |只看该作者 |倒序浏览
awk -F'[,]' '{printf "%s,%s",$5,$4}' click_040508NewDailyemail2\[1\].20080505.csv

一个简单的AWK,有一个问题是$5的内容很长,当超过一行的时候,下一行总是先显示$4的内容,然后紧跟着显示$5剩下的内容?有没有办法避免呢?

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2008-05-06 15:03 |只看该作者
awk -F',' '{print $5","$4}' click_040508NewDailyemail2\[1\].20080505.csv

论坛徽章:
0
3 [报告]
发表于 2008-05-06 15:08 |只看该作者

回复 #2 ly5066113 的帖子

我最开始就是这样用的,效果一样

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
4 [报告]
发表于 2008-05-06 15:16 |只看该作者
原帖由 dotnetdotcn 于 2008-5-6 15:08 发表
我最开始就是这样用的,效果一样


你的代码没有换行,结果只有一行。

当超过一行的时候,下一行总是先显示$4的内容,然后紧跟着显示$5剩下的内容


你要确定,是$4把$5的内容分隔了,还是覆盖了$5的部分?
如果是分隔了,估计是工具显示的问题,写成文件或者换个工具试试看。
如果是覆盖了,说明$5的内容中有回车符。

论坛徽章:
0
5 [报告]
发表于 2008-05-06 15:29 |只看该作者
原帖由 ly5066113 于 2008-5-6 15:16 发表


你的代码没有换行,结果只有一行。

我不需要有换行的效果,只是要“,”分割


你要确定,是$4把$5的内容分隔了,还是覆盖了$5的部分?
如果是分隔了,估计是工具显示的问题,写成文件或者换个工具试试看。
如果是覆盖了,说明$5的内容中有回 ...


是覆盖了,但字符串中肯定没有回车,
http://www.xxxxxx.com/sc/story.j ... p;pa5=hq@xxxxxx.com
$5中都是这种URL地址

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
6 [报告]
发表于 2008-05-06 15:36 |只看该作者
原帖由 dotnetdotcn 于 2008-5-6 15:29 发表


是覆盖了,但字符串中肯定没有回车,
http://www.xxxxxx.com/sc/story.j ... p;pa5=hq@xxxxxx.com
$5中都是这种URL地址


$5是你文件中的最后一个字段吧?
如果是,就说明的你的文件是dos格式的。

dos2unix click_040508NewDailyemail2\[1\].20080505.csv

论坛徽章:
0
7 [报告]
发表于 2008-05-06 15:41 |只看该作者

回复 #6 ly5066113 的帖子

对的,$5是文件的最后一个字段,而且文件是从windows下传过来的

论坛徽章:
0
8 [报告]
发表于 2008-05-06 16:06 |只看该作者
原帖由 ly5066113 于 2008-5-6 15:36 发表


$5是你文件中的最后一个字段吧?
如果是,就说明的你的文件是dos格式的。

dos2unix click_040508NewDailyemail2\[1\].20080505.csv


太厉害了,

论坛徽章:
0
9 [报告]
发表于 2008-05-06 16:24 |只看该作者
确实如ly5066113所说,用了dos2unix就好了,能说一下原理么,我对windows下的东西不太懂

论坛徽章:
0
10 [报告]
发表于 2008-05-06 19:19 |只看该作者
win下面用\r\n表示另起一行
在linux下面用\n表示另起一行

而\r,在linux中表示把光标移动到行首

我分析,如果$5不太长(不需要折行显示)的话,它的开头部分应该是被$4覆盖的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP