2016-11-08 85 views
1

我在Linux命令行,我有记录文件与以下内容如何在每行的末尾跳过最后N个字符

Subscription Service Shutdown at 9:59PM UTC 
Subscription Service Restarted at 11:57PM UTC 

我想时间戳每前添加日期之后添加文本线

Subscription Service Shutdown at 01 Oct 2016 9:59PM UTC 
Subscription Service Restarted at 01 Oct 2016 11:57PM UTC 
+1

您尝试了什么? – romainl

+0

你正试图添加一个已知字符串'01 Oct 2016'或当前日期? – Sundeep

+0

我将添加已知字符串 –

回答

1

像这样:

SED -r“S /([0-9] + {1}:[0-9] + {1} [AZ] {2} * $ )/ 2016年10月1日\ 1/g“test.txt> new.txt

其中text.txt是您的日志文件,”01 Oct 2016“是您的文本,\ 1是从小组赛。

0

你可以尝试这样的事情;

echo "Subscription Service Shutdown at 9:59PM UTC" | sed "s/at */at $(date '+%Y %b %d') /" 

例如;

$ echo "Subscription Service Shutdown at 9:59PM UTC" | sed "s/at */at $(date '+%Y %b %d') /" 
Subscription Service Shutdown at 2016 Nov 08 9:59PM UTC 
2

的VIM方式:

:%s/ at /&knownString/ 
0

不同的方式来做到这一点在vim

1)添加字符串后at

:%s/at \zs/01 Oct 2016/


2)求格式HH:MM的时间字符串接着是AM UTCPM UTC并添加串。添加$锚如果您只需要在行尾匹配

:%s/\v(\d{1,2}:\d{1,2}[AP]M UTC)/01 Oct 2016 \1/