нужна помощь в удалении времени из файла CSV - PullRequest
2 голосов
/ 05 августа 2009

Я пытаюсь обработать 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 ]

1 голос
/ 05 августа 2009

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()
1 голос
/ 05 августа 2009
cut -d '-' -f 1 file

Редактировать после комментария:

sed 's/-[0-9][0-9]:[0-9][0-9]:[0-9][0-9]//g' file
0 голосов
/ 13 августа 2009

Да, я думаю, что sed - правильный инструмент для работы:

sed 's/-[:0-9]*$//' file
0 голосов
/ 06 августа 2009

просто используйте awk

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