需要帮助从csv文件中删除时间

时间:2009-08-05 14:27:26

标签: sed awk unix

即时尝试处理csv并使其更容易排序,我需要从中删除时间和短划线。该文件包含以下条目:

James,07/20/2009-14:40:11
Steve,08/06/2006-02:34:37
John,11/03/2008-12:12:34

并将其解析为:

James,07/20/2009
Steve,08/06/2006
John,11/03/2008

我猜猜sed是这项工作的合适工具吗?

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

cut -d '-' -f 1 file

评论后编辑:

sed 's/-[0-9][0-9]:[0-9][0-9]:[0-9][0-9]//g' file

答案 1 :(得分:1)

的Python

import csv
import datetime

rdr = csv.reader( open("someFile.csv", "rb" ) )
rows = list( reader )
rdr.close()

def byDateTime( aRow ):
    return return datetime.datetime.strptime( aRow[1], "%m/%d/%Y-%H:%M:%S" )

rows.sort( key= byDateTime )

wtr = csv.writer( open("sortedFile.csv", "wb" ) )
wtr.writerows( rows )
wtr.close()

答案 2 :(得分:0)

只需使用awk

awk -F"," '{ split($2,_,"-"); print $1,_[1] }' OFS="," file

答案 3 :(得分:0)

是的,我认为sed是这项工作的正确工具:

sed 's/-[:0-9]*$//' file