我有一个像这样的文本文件:
13/03/2015 09:21:02 Descrição de log (Sessão terminada);name.lastname -- 127.0.0.1:66666 -> 0.0.0.0 -- 00:01 -- 13/03/2015 09:21:02 Descrição de log (Autenticação realizada com sucesso);name.lastname.....
我想知道每次约会时我都能打破这条线。图案为dd / mm / yyyy。所以文本最终会像:
13/03/2015 09:21:02 Descrição de log (Sessão terminada);name.lastname -- 127.0.0.1:66666 -> 0.0.0.0 -- 00:01 --
13/03/2015 09:21:02 Descrição de log (Autenticação realizada com sucesso);name.lastname.....
有人可以帮我吗?可以是java代码,sed,awk,等等...
感谢。
答案 0 :(得分:4)
使用GNU sed:
sed -r 's, ([0-9]{2}/[0-9]{2}/[0-9]{4} ),\n\1,g' filename
正则表达式的[0-9]{2}/[0-9]{2}/[0-9]{4}
部分与日期模式匹配;整个正则表达式将它与空格包围以避免误报,并且因为您的示例数据表明输入符合此格式。在,
命令中,/
用作分隔符而不是s
,因为搜索正则表达式包含斜杠。
答案 1 :(得分:2)
使用perl:
perl -pe 's{(?<=.)(?=\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2})}{\n}g'
使用环视查找在不在行开头的日期之前查找地点,并在那里放置换行符。