我在这样的文件中有数据......
405,,,405,15.4,0,04/21/12 14:13:29
402,,,402,15.4,0,04/21/12 14:13:37
404,,,404,15.5,0,2012/04/21 14:14:05
404,,,404,15.4,0,2012/04/21 14:14:11
403,,,403,15.4,0,2012/04/21 14:14:17
我想将最后一列转换为 YYYY/MM/DD hh:mm:ss 格式的日期。
一些行已经是那种格式,所以它们应该被忽略。
我试过下面的 awk 命令,但它看起来很慢,有时还会抛出错误
awk -F ',' '{ ("date -d \""$7"\" \"+%Y/%m/%d %T\"") | getline $7; print }' MyFile
这不必在 awk 中完成。我在标准 Debian 命令行上有可用的任何实用程序。
最佳答案
为此我会使用 sed 而不是 awk。像这样:
sed 's@,\(..\)/\(..\)/\(..\) @,20\3/\1/\2 @'
编辑问题前的旧答案:
您可以使用 tr :/
将冒号转换为斜杠,或者您可以让 awk 直接进行替换。但是,为什么您会认为 HH/MM/SS 是一种有效格式,这超出了我的理解范围。
关于linux - 使用 awk 或其他转换最后一列中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259407/