1
У меня есть mytext.txt
файл, который имеет следующие в нем:Как интерпретировать длинную строку в формате csv?
2016-08-13 00:54:02,1471049642,62,28,16 2016-08-13 00:54:03,1471049643,62,28,20 2016-08-13 00:54:04,1471049644,62,28,18 2016-08-13 00:54:05,1471049645,62,28,18 2016-08-13 00:54:06,1471049646,62,28,19 2016-08-13 00:54:07,1471049647,62,28,17 2016-08-13 00:54:08,1471049648,62,28,19 2016-08-13 00:54:09,1471049649,62,28,16 2016-08-13 00:54:10,1471049650,62,28,19 2016-08-13 00:54:11,1471049651,62,28,18
Я пытался сделать while
петлю с BASH:
while IFS="," read -r f1 f2 f3 f4 f5
do
echo -e "f1:$f1 f2:$f2 f3:$f3 f4:$f4 f5:$f5"
done < mytext.txt
, чтобы получить следующий вывод:
2016-08-13 00:54:02,1471049642,62,28,16
2016-08-13 00:54:03,1471049643,62,28,20
2016-08-13 00:54:04,1471049644,62,28,18
2016-08-.....
, но выход я получаю:
f1:2016-08-13 00:54:02 f2:1471049642 f3:62 f4:28 f5:16 2016-08-13 00:54:03,1471049643,62,28,20 2016-08-13 00:54:04,1471049644,62,28,18 2016-08-....
Где $f5
содержит остальную часть файла для чтения.
Как я могу это исправить?
идеале я хочу чтобы вывести это в файл csv - это будет позже обрабатывается GNUPlot. ** Q: ** Как я могу нажать это в 'mycsvfile.csv'? – 3kstc
's/([0-9 -] {10})/\ n \ 1/g' также будет работать для этого набора данных – Sundeep
@ 3kstc: вы можете перенаправить вывод в файл csv:' sed -E '/([0-9] {4} - [0-9] {2} - [0-9] {2})/\ n \ 1/g 'mytext.txt> mycsvfile.csv' – anubhava