我的程序正在将两个值并排写入文件 - (作为两列)通过一些愚蠢的编程错误我已经设法完成以下操作
fprintf(network_energy_delta_E_BM, "%f\n\t %f\n", delta_network_energy_BM,
network_energy_initial);
"%f\n\t %f\n"
意味着我的数据看起来有点像这样:
1234
56
24
99
依此类推。 这给我带来了一些问题以及我需要做什么..有没有办法修改文件以便它们并排?我试过了
paste network_energy_delta_E_BM.dat foo.dat | awk '{ print $1 }' > new.dat
其中network_energy_delta_E_BM.dat是我的文件,foo.dat只是一个空文件。但它需要所有条目,只需将它们放入一列即可。有人可以帮忙解决这些问题吗? 有超过2000000个条目,所以我无法手动解决这个问题。
或者有没有办法获取这个新文件new.dat并采取每一个条目并将其写入新列?
谢谢
答案 0 :(得分:3)
使用此awk
表达式怎么样?
awk '!(NR%2){print p,$0*1; next}{p=$0}' file
它将两行连接成一行,其中NR
表示记录数(在这种情况下为行)。请注意,$0*1
用于删除第二行的尾随选项卡。
$ cat a
1234
56
24
99
$ awk '!(NR%2){print p,$0*1; next}{p=$0}' a
1234 56
24 99