首页 > 解决方案 > 从制表符分隔的文件中提取数字

问题描述

我有一个制表符分隔的 .txt 文件,它有 4 行和 4 列。我想从 txt 文件中提取数字(整数、十进制数和科学记数法)。数字位于第 2-4 行和第 2-4 列(第一行是标题,第一列是行名)。该文件的内容粘贴在下面:

component   sigma          h2           h2_se
G           -5.55758e-19   -0.0964725   26.3887
GxE         6.13144e-18    1.09647      26.3651
noise       0              0            0

这是所需的输出,并且由于对此输出的进一步处理,我希望\n在末尾附加换行符。

-5.55758e-19 -0.0964725 26.3887 6.13144e-18 1.09647 26.3651 0 0 0

任何帮助是极大的赞赏!

下面是我尝试的一些代码,它没有产生我想要的:

grep -o '0.[[:digit:]]*' myfile

grep -o '[[:digit:]]*' myfile

==================================================== ==

这是对我有用的代码,非常感谢@tink!

awk 'NR>1 {printf "%s %s %s ", $2,$3,$4}END{printf "\n"}' myfile

标签: regexlinuxawkgrep

解决方案


$ cut -f2- < file | tail -n+2 | paste -s - | tr '\t' ' '
-5.55758e-19 -0.0964725 26.3887 6.13144e-18 1.09647 26.3651 0 0 0

推荐阅读