Gnuplotting отсортированное слияние двух CSV-файлов - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь объединить и отсортировать два файла CSV, пропуская первые 8 строк.

Я пытаюсь отсортировать один из файлов по 36-му столбцу, который я использую:

awk '(NR>8 ){print; }' Hight_5x5.csv | sort -nk36

иобъединить два файла:

cat Hight_5x5.csv <(tail +8 Hight_5x5_b.csv)

Команда sort не работает.

Я хотел бы, чтобы два использовали оба действия в команде и отправили результат в команду plot команды gnuplot.Я пробовал эту строку:

awk '(NR>8 ){print; }' (cat Hight_5x5.csv <(tail +8 Hight_5x5_b.csv)) | sort -nk36

, и он объединяет два файла, но не сортирует по столбцу 36, поэтому я предполагаю, что в gnuplot plot команда тоже не будет работать.

plot "<awk '(NR>8 ){print; }' (cat Hight_5x5.csv <(tail +8 Hight_5x5_b.csv)) | sort -nk36"

Проблема в формате двух файлов.Данные имеют "," разделений.Например, ...,"0.041","3.5","40","false","1000","1.3","20","5","5","-20","2","100000000","0.8",....

Эта ссылка содержит два файла CSV.

С уважением

1 Ответ

0 голосов
/ 27 ноября 2018
$ awk 'FNR>8' file1 file2 | sort -k36n 

должен сделать, я полагаю, что вы также должны иметь возможность передать gnuplot.

Не понимаю ваш комментарий, sort будет сортировать.Возможно, у вас нет 36 полей или ваш разделитель не является пробелом, который вы должны указать.

Вот пример с фиктивными данными с полями, разделенными запятыми

$ awk 'FNR>3' <(seq 20 | paste - - -d,) <(seq 10 | shuf | paste - - -d,) | sort -t, -k2n
5,1
2,7
7,8
9,10
11,12
13,14
15,16
17,18
19,20
...