免费注册 查看新帖 |

Chinaunix

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

如何在awk中实现文本替换? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-23 17:32 |只看该作者 |倒序浏览
比如文件a.txt内容如下:
ab, 1979-01-01 10:04:20 ,1111111
aaaaa,1978-10-11 11:01:10 bbbbb
......

目的,把每行中的日期替换成yyyy-mm-dd格式,把后面的时间去掉,文件中日期和时间是随机的。
即变成:
ab, 1979-01-01 ,1111111
aaaaa,1978-10-11 bbbbb
......
要求不用sed,不能交互的方式,谢谢。

论坛徽章:
0
2 [报告]
发表于 2003-05-23 17:52 |只看该作者

如何在awk中实现文本替换?

  1. awk -F,  'BEGIN{OFS=","}{split($2,b," ");$2=b[1];print $0}' filename
复制代码

论坛徽章:
0
3 [报告]
发表于 2003-05-23 18:23 |只看该作者

如何在awk中实现文本替换?

抱歉,日期不一定在第二个位置的,不固定的,就是把每行可能有的日期都替换一下,去掉具体时间部分只留下年月日

论坛徽章:
0
4 [报告]
发表于 2003-05-23 18:27 |只看该作者

如何在awk中实现文本替换?

那说说你的数据有什么规律可循?
能多贴几行数据出来吗?
如果无规律可言的话建议先用sed预处理。而后再用awk进行进一步的处理。

论坛徽章:
0
5 [报告]
发表于 2003-05-23 18:45 |只看该作者

如何在awk中实现文本替换?

就是发现yyyy-mm-dd hh:mm:ss格式的串就替换成yyyy-mm-dd,位置等别的什么规律不太好找。谢谢你,已经给我些启发了,我再仔细想想会不会找到类似你写的规律,也烦你再帮助想想没有规律的情况下可否实现?

论坛徽章:
0
6 [报告]
发表于 2003-05-23 18:51 |只看该作者

如何在awk中实现文本替换?

[quote]原帖由 "cghou"]抱歉,日期不一定在第二个位置的,不固定的,就是把每行可能有的日期都替换一下,去掉具体时间部分只留下年月日[/quote 发表:


  1. nawk '{
  2.     gsub("[0-2][0-9]:[0-6][0-9]:[0-6][0-9]","", $0 )
  3.     print $0
  4. }' file
复制代码


______________
* gawk, nawk 都可以,老的 awk 不行。很多系统上的 awk 其实是 gawk 或 nawk,但也有不是的,如 solaris  默认的 awk

论坛徽章:
0
7 [报告]
发表于 2003-05-23 19:00 |只看该作者

如何在awk中实现文本替换?

可以了!非常感谢!

论坛徽章:
0
8 [报告]
发表于 2003-05-24 20:12 |只看该作者

如何在awk中实现文本替换?

厉害。红袖姐姐水平没得说啊..............

论坛徽章:
0
9 [报告]
发表于 2003-05-28 15:38 |只看该作者

如何在awk中实现文本替换?

nawk '{
    gsub("[0-2][0-9]:[0-6][0-9]:[0-6][0-9]","", $0 )
    print $0
}' file

建议红袖姐姐是否可以稍作修改:
nawk '{
    gsub("[0-2][0-9]:[0-5][0-9]:[0-5][0-9]","", $0 )
    print $0
}' file

这样可能更符合实际一些,仅作参考。

论坛徽章:
0
10 [报告]
发表于 2003-05-28 17:00 |只看该作者

如何在awk中实现文本替换?

[quote]原帖由 "charless988"]这样可能更符合实际一些,仅作参考。[/quote 发表:
   

是啊,考虑不周, 不会出现第 60 秒     

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP