我有一个文件,其中每行以特定的日志信息开头。这是一个例子:
12-May 02:01:18:INFO:root:restapid=>someurlhere
12-May 02:01:19:INFO:root:response=>loremipsum
我想抓住这些时间信息并将其替换为当前日期和时间。我能够通过使用egrep获得目标部分但不幸的是我找不到改变它的方法(可能是因为我不熟悉sed)。我怎样才能做到这一点 ?我的egrep解决方案如下:
egrep '^[0-9]+-[a-Z]+ [0-9]+:[0-9]+:[0-9]+'weblog.api
如果我可以管理这个部分,我想把这个命令分配给我的bashrc中的一个函数(或别名),当我运行它时,我想通过调用像
这样的东西来改变当前时间的所有时间信息sample_alias weblog.api
所需的输出格式如下(让我们说现在的时间是04 Feb 05:02:03。我相信我可以通过date "+%y%m%d%H%M"
命令得到时间信息)
05-Feb 05:02:03:INFO:root:restapid=>someurlhere
05-Feb 05:02:03:INFO:root:response=>loremipsum
答案 0 :(得分:0)
cat v1
12-May 02:01:18:INFO:root:restapid=>someurlhere
12-May 02:01:19:INFO:root:response=>loremipsum
sed 's/[0-9]*-[a-Z]* [0-9]*:[0-9]*:[0-9]*/'"$(date +"%d-%b %H:%M:%S")"'/g' v1
05-Feb 06:21:30:INFO:root:restapid=>someurlhere
05-Feb 06:21:30:INFO:root:response=>loremipsum