regex - 如何更改文本文件 linux/unix 中的日期格式

标签 regex linux date unix sed

以下是文本文件myfile.txt

7022122465,0,0,day,2015-09-29 10:48:33
7022597642,0,0,day,2015-09-29 10:48:33
7022848906,0,0,day,2015-09-29 10:48:33
7022191546,0,0,day,2015-09-29 10:48:33
7022180761,0,0,day,2015-09-29 10:48:33
7022125589,0,0,day,2015-09-29 10:48:33
7022224472,0,0,day,2015-09-29 10:48:33

我想使用正则表达式将最后一列日期格式从 2015-09-29 更改为 2015:09:29,请帮助我。

我试过这样但是替换了正则表达式(我是 linux 初学者)

sed -r  's/([0-9]{4}-[0-9]{2}-[0-9]{2})/([0-9]{2}:[0-9]{2}:[0-9]{2})/g' myfile.txt

最佳答案

你可以用这个

sed -r 's/([0-9]{4})-([0-9]{2})-([0-9]{2})/\1:\2:\3/g' myfile.txt

() 是捕获组。使用捕获组匹配的任何结果都将被存储,并且可以在使用 \1\2 等替换期间进行反向引用

([0-9]{4})-([0-9]{2})-([0-9]{2})
<--------> <--------> <-------->
1st group  2nd group  3rd group

关于regex - 如何更改文本文件 linux/unix 中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37523058/

相关文章:

regex - 不匹配句子中否定词的更易读的方式

linux - git 更改未反射(reflect)在远程存储库中

sql-server - 在Linux Centos 6.6上使用R连接到SQL Server

java - 使用 Solr 对日期进行排序会弄乱一些日期

regex - Delphi中的RegEx剥离回车符和换行符

java - 实现词法分析器

在 Linux 中显示 C 程序的输出时控制光标

javascript - 创建查询参数以设置开始和结束日期/时间

javascript - typescript - 删除毫秒

php - 使用 Zerofill 匹配数据戳多个变体,无需等