以下是文本文件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
答案 0 :(得分:3)
您可以使用此
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
答案 1 :(得分:3)
您应该尝试:
,而不是分组sed 's/-/:/g' myfile.txt
如果您要使用i
选项编辑文件,请执行以下操作:sed -i 's/-/:/g' myfile.txt