gen*_*ion 2 linux bash awk sed
我有像这样的文件中的数据......
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
Run Code Online (Sandbox Code Playgroud)
我想将最后一列转换为YYYY/MM/DD hh:mm:ss格式的日期.
有些行已经采用这种格式,因此应该忽略它们.
我尝试了以下awk命令,但它似乎很慢,有时会抛出错误
awk -F ',' '{ ("date -d \""$7"\" \"+%Y/%m/%d %T\"") | getline $7; print }' MyFile
Run Code Online (Sandbox Code Playgroud)
这不必在awk中完成.我在标准的Debian命令行中有任何实用程序.
我会用sed而不是awk.像这样的东西:
sed 's@,\(..\)/\(..\)/\(..\) @,20\3/\1/\2 @'
Run Code Online (Sandbox Code Playgroud)
问题前的旧答案被编辑:
您可以使用tr : /
将冒号转换为斜线,或者您可以直接使用awk进行替换.但是为什么你会认为HH/MM/SS的有效格式超出了我的范围.
归档时间: |
|
查看次数: |
2850 次 |
最近记录: |