我有一个这样的文件:从时间删除秒(AWK,SED)
XX1, 1.1,24.08.1994 13:00:00, 111,112,113
XX2, 1.2,24.08.1994 13:30:00, 121,122,123
XX3, NaN,22.08.1995 15:00, 131,132,133
所以时间格式是不相符的。有些行有时间,如hh:mm:ss,有些行有时间格式hh:mm。我想删除秒,并得到一个文件是这样的:
XX1, 1.1,24.08.1994 13:00, 111,112,113
XX2, 1.2,24.08.1994 13:30, 121,122,123
XX3, NaN,22.08.1995 15:00, 131,132,133
我试过至今
#!/bin/bash
sed '[email protected],\(..\):\(..\):\(..\) @,\1:\2 @' <time_fault> ./time_corrected
和
#!/usr/bin/awk -f
BEGIN { RS="," ; FS=":"; ORS=","}
{ getline str
gsub(/*..:..:..*/, $1":"$2 str) > time_corrected }
但都没有奏效。
这个作品!但我不明白如何......首先你将当前记录$ 0分割为一个带分隔符“:”的数组a。对于字段Nr。大于2时,用逗号替换两位数字和逗号?而最终的结果是什么? – telemachos
如果nr> 2,表示该行有“秒”部分,gsub用于删除该部分。 1到底意味着,实际上是“真实的”,打印当前行,当然已经被gsub取代了。 – Kent