【问题标题】:Using awk command to add an extra column使用 awk 命令添加额外的列
【发布时间】:2026-02-18 04:35:01
【问题描述】:

所以昨天我使用 sed 命令将多个文件的第 n 行读入单个输出 Read the n-th line of multiple files into a single output 我能够生成一个如下所示的 data.txt 文件:

0 0 0 
-1.08051e-16 -1.73991e-16 -1.79157e-16 
-1.02169e-15 -1.19283e-15 5.92632e-16 
3.41114e-16 -1.02211e-15 3.19436e-15 
......

注意,它们都是代表x、y和z轴的位置数据。现在我只想使用 awk 命令再添加一列来表示时间步长,它对应于我的转储文件的编号,例如 0 250 500...一直到 40000。

【问题讨论】:

  • 你需要额外的列做什么?如果是用gnuplot 绘制数据,那么您可以在程序中生成它。但这只是从你的标签中猜测出来的......不是最好的提问方式。

标签: awk ubuntu-12.04 gnuplot


【解决方案1】:

不确定我是否正确理解了您的问题,但在 awk 中添加一列非常简单。你可以这样做:

$ echo '0 0 0                                       
-1.08051e-16 -1.73991e-16 -1.79157e-16 
-1.02169e-15 -1.19283e-15 5.92632e-16                                             
3.41114e-16 -1.02211e-15 3.19436e-15 ' | awk 'BEGIN{val=0}{print $0,val;val+=250}'
0 0 0 0
-1.08051e-16 -1.73991e-16 -1.79157e-16  250
-1.02169e-15 -1.19283e-15 5.92632e-16  500
3.41114e-16 -1.02211e-15 3.19436e-15  750

【讨论】: