[英]How to change date format in text file linux/unix
以下是文本文件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
而不是分组,您应该尝试:
sed 's/-/:/g' myfile.txt
如果要在适当位置编辑文件,请使用i
选项,例如: sed -i 's/-/:/g' myfile.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.