【发布时间】:2021-12-21 20:11:54
【问题描述】:
我有一个制表符分隔的 .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
【问题讨论】:
-
到目前为止,您尝试过什么来解决这个问题?请在帖子中包含任何相关代码。
-
@tink 嘿,它现在可以工作了——我用错误的文件名运行它(因此格式错误),然后我改成了
awk 'NR>1 {printf "%s %s %s ", $2,$3,$4}END{printf "\n"}',因为只有第一行是不需要的。非常感谢您的帮助! -
这将在输出中添加一个尾随空白。
print ""也比printf "\n"好,因为前者只是使用ORS而后者使用它希望将ORS设置为的硬编码字符串。 -
请将答案作为答案发布在社区可以投票/否决的地方,并显示为搜索论坛的人的答案,不要只将答案包含在您的问题中,并且显然没有答案。
-