我试图跳过前8行对两个CSV文件进行合并和排序。
我尝试按我使用的第36列对文件之一进行排序:
awk '(NR>8 ){print; }' Hight_5x5.csv | sort -nk36
并合并两个文件:
cat Hight_5x5.csv <(tail +8 Hight_5x5_b.csv)
sort
命令不起作用。
我想两个在命令中同时使用两个动作,并将结果发送到gnuplot的plot
命令。我已经尝试过这一行:
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",...
。
此link具有两个CSV文件。
致谢
答案 0 :(得分:1)
$ 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