我试图从名为的multicolumn file中提取一些数据质量.mas03。列由tab
分隔。当数据开始时,您可以看到有一些条目是空的(即第44行和第45行)。你知道吗
整个思想是从特定列(MASS EXCESS,即)中提取多行的数据,求和并在xy轴系统上创建一条水平线,y坐标是这些值的和。你知道吗
以第41、65、74行为例
-1 0 1 1 H 7288.97050 0.00011 0.0 0.0 B- * 1 007825.03207 0.00010
0 4 4 8 Be 4941.672 0.035 7062.435 0.004 B- -17979.819 1.001 8 005305.103 0.037
4 7 3 10 Li -n 33050.581 15.124 4531.555 1.512 B- 20443.910 15.123 10 035481.259 16.236
我想做:7288.97050+4941.672-33050.581=-20819.9385。如果我使用awk
命令访问数据,我将面临这个问题
> awk '/8 Be/ {print $6}' mass.mas03
4941.672
>awk '/10 Li/ {print $6}' mass.mas03
-n
我不知道awk
是否是做数据选择以及“绘图”的最佳选择,所以我愿意接受建议!你知道吗
一个显而易见的解决方案是在需要的地方使用$7
而不是$6
,但这是一个大文件,我正在尝试自动化一点整个过程。你知道吗
对于这个奇怪的列文件,有没有办法“选择”所需的数据并对其应用一些简单的计算?你知道吗
要用制表符替换空格,可以尝试以下操作:
其中
f.awk
是:如果您的数据是真正的制表符分隔的,那么您只需使用:
如果是固定宽度字段,则应使用:
例如:
请注意,FIELDWIDTHS是特定于gawk的。我不知道这些是否是正确的领域宽度或不是你的数据,我只是做了一个大概的估计,以证明该方法。显然,如果您想将其从字段固定转换为制表符分隔,那么这样做很简单:
如果要从每个字段中去掉前导/尾随空格:
对我来说,文件的结构仍然是从一个点开始到另一个点结束 特定字段的字符数总是相同的 所以它是一个固定宽度的字段
7美元起价35美元,宽度12美元
使用awk'/Li/{print substr($0,35,12)}'质量.mas03你知道吗
相关问题 更多 >
编程相关推荐