以下是文本文件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/