2015-12-03 4 views
0

я имею ниже текстовый файл в этом форматеСоздание файла CSV из текстового файла

2015-04-21 
00:21:00 
5637 
5694 
12 
2015-04-21 
00:23:00 
5637 
5694 
12 

Я хочу создать CSV-файл, как ниже один-

2015-04-21,00:21:00,5637,5694,12 
2015-04-21,00:23:00,5637,5694,12 

я использовал тр и СЭД как this-

cat file | tr '\n' ',' | sed 's/,$//' 

Это приводит ниже

ПУТЬ
2015-04-21,00:21:00,5637,5694,12,2015-04-21,00:23:00,5637,5694,12 

но это не имеет новую строку после колонки 5.

ли предложить решение.

ответ

0

простое решение в Python

fin = open('file','r') 
fout = open('outputfile','w') 
a=[] 
i=0 
for line in fin: 
    a.append(line.rstrip()) 
    i+=1 
    if i==5: 
     fout.write(','.join(a)+'\n') 
     a=[] 
     i=0 
fin.close() 
fout.close() 
+0

Mohit, мне нужно сохранить этот файл как .py? Как я могу запустить это приложение python? –

+0

сохранить как test.py, а затем на cmd запустить 'python test.py' – Mohit

1

Использование awk следующим образом:

awk 'ORS=NR%5 ? "," : "\n"' 

$ cat test.txt 
2015-04-21 
00:21:00 
5637 
5694 
12 
2015-04-21 
00:23:00 
5637 
5694 
12 

$ awk 'ORS=NR%5 ? "," : "\n"' test.txt 
2015-04-21,00:21:00,5637,5694,12 
2015-04-21,00:23:00,5637,5694,12 

Пояснение:

  • ПРС обозначает выходной разделитель записей
  • NR это число записей
  • NR% 5 -% - оператор modulo. Если он равен нулю (каждая пятая запись), используйте линию. В противном случае используйте запятую
+0

Wow Zed, Это выглядит потрясающе. Позвольте мне попробовать это и обновить вас. –

+0

У вас была возможность попробовать? У вас есть два хороших ответа. Когда у вас появится шанс, пожалуйста, не стесняйтесь принять один из ответов, чтобы положить конец вашему вопросу. – zedfoxus

+0

Да Зед, это работает, как и ожидалось. Я также получил это, как ожидалось, http://www.cyberciti.biz/faq/unix-linux-bash-read-comma-separated-cvsfile/ –

Смежные вопросы