gpt4 book ai didi

Linux:我想获取第 3 列的前 10 条记录。该列有一些缺失的数据。我整理了文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:44 25 4
gpt4 key购买 nike

我不确定如何忽略此处丢失的数据。

我的 ; 分隔文件看起来像(用空格书写以便于阅读):

Col1  Col2  Col3  Col4  Col5
12 a ? ? ?
1 b ? ? ?
45 c 7.22 6.09 2.2
11 d 7.0 3.89 9.7
26 e 6.24 8.2 5.9
and so on....

我想获取第3列最大值的记录

Col1  Col2  Col3  Col4  Col5
45 c 7.22 6.09 2.2
11 d 7.0 3.89 9.7
26 e 6.24 8.2 5.9

我将第 3 列上的文件倒序排列。不确定如何进一步进行。

sort -t';' -k3 -r original.txt > newfile.txt 

最佳答案

命令行的优点在于,您可以轻松地将最好的工具用于适当的应用程序,或者使用管道 | 链接输出,或者创建临时文件,如 newfile.txt

在这种情况下,使用sort 是对数据进行排序的合适选择。排序后,您可以使用一个单独的工具来非常有效地解析数据,awk

从你排序的 newfile.txt 开始,这个 awk 操作只会打印一行有 5 个字段(假设你丢失的数据实际上丢失了并且没有空分隔符,例如你的行看起来像 45;c; 而不是 45;c;;;)

awk -F';' 'NF == 5 { print }' newfile.txt

但是,在空字段被分隔的情况下(例如 45;c;;;),并假设只有第 3 列到第 5 列可能有缺失数据,这将处理它:

awk -F';' 'NF == 5 && $3 && $4 && $5 { print }' newfile.txt

请注意,由于 awk 的默认行为是打印,上面的 { print } 实际上是不必要的,但包含在教学中。

因此,从头到尾,您可以获得想要的结果,

sort -t ';' -rk3 original.txt | awk 'NF==5 && $3 && $4 && $5' > result.txt

关于Linux:我想获取第 3 列的前 10 条记录。该列有一些缺失的数据。我整理了文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54703242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com