linux 文本内容替换(awk/sed)

麻烦高手们指导,提供替换的脚本和解释,谢谢!1)原始文本内容如下,数据间逗号为分隔符,但存在问题是日期格式有问题,需要调整正确:(源文件的记录数10W条左右)201407... 麻烦高手们指导,提供替换的脚本和解释,谢谢!
1)原始文本内容如下,数据间逗号为分隔符,但存在问题是日期格式有问题,需要调整正确:(源文件的记录数10W条左右)

20140729,05163245,10888,003051,2014-07-29-22.54.58.255521,00
20140729,05161734,10725,051504,2014-07-29-22.54.59.762993,00
2)目的:希望将第5列的字段进行替换,每行数据的时间都是不一样的。
“2014-07-29-22.54.58.255521”由于输出有误,需要将数据调整为正确的日期格式,如:
“2014-07-29 22:54:58”
展开
 我来答
小米飞猫
2014-10-27 · 专注于IT监控领域技术
小米飞猫
采纳数:1651 获赞数:4811

向TA提问 私信TA
展开全部
#sed -e 's/\.[0-9]\{6\}//' -e "s/\./:/g" file
#删除字符'.'后跟着六位数字的字符串
#可以先手动测试一下,符合要求加个-i参数修改源文件。


线质懂3
2014-10-27 · 超过18用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:33.3万
展开全部
#!/usr/bin/perl
use strict;
use warnings;

my $log_path="./aoyou.txt"; #修改你的日志路径
open LOG,"$log_path" or die "Can not open log file: $!";

foreach  (<LOG>) {
if ($_ =~ m!(.*\,.*\,.*\,.*)\,(\d+\-\d+\-\d+)\-(\d+\.\d+\.\d+)\.\d+,(.*)!) {
print "$1,$2 $3,$4 \n";
}
}

close LOG
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怪物甄别指南rY
推荐于2016-11-15 · TA获得超过1541个赞
知道大有可为答主
回答量:1005
采纳率:0%
帮助的人:947万
展开全部

假设你的文件叫做filename,敲

sed 's/\([0-9]\{4\}-[0-9][0-9]-[0-9][0-9]\)-\([0-9][0-9]\).\([0-9][0-9]\).\([0-9][0-9]\).\([0-9]\{6\}\)/\1 \2:\3:\4/g' filename > output


新的结果就会存在outpu文件里了


20140729,05163245,10888,003051,2014-07-29 22:54:58,00

20140729,05161734,10725,051504,2014-07-29 22:54:59,00

这是用你的数据得到的样板答案

追问
您好,按照您的方法执行,能解决大部分的问题了,但输出结果如下“2014-07-29 22:54:58.255521”,秒后加上小数点还有7位需要截掉,能帮忙补充完成吗,谢谢!
追答

不知道你为什么会有那样的问题哎,我测试的时候明明好好的,已经把尾巴截掉了

 

那你再试试这个吧

sed 's/\([0-9]\{4\}-[0-9][0-9]-[0-9][0-9]\)-\([0-9][0-9]\).\([0-9][0-9]\).\([0-9][0-9]\).\([0-9]*\)/\1 \2:\3:\4/g' filename > output
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kiman223
2018-08-02
知道答主
回答量:1
采纳率:0%
帮助的人:839
展开全部
[root@localhost shell]# gawk -f script file1.txt
20140729,05163245,10888,003051,2014-07-29-22.54.58,00
20140729,05161734,10725,051504,2014-07-29-22.54.59,00
file1.txt里存得是你给的数据,script里内容如下:
[root@localhost shell]# cat script
BEGIN {
FS="."
}
{
print $1 "." $2 "." $3 ",00"
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式