Python还是命令行工具 - 排序和过滤文件?

1 投票
2 回答
540 浏览
提问于 2025-04-17 00:25

给定的数据格式如下:

a b 1.1
c d 2.3
b a 1.1

是否可以根据第三列对这样的文件进行排序,并去掉第三列中重复的行,这样输出结果将是:

a b 1.1
c d 2.3

或者,

c d 2.3
b a 1.1

我只会使用Python、R或者命令行工具来处理一组非常大的文件。

谢谢!

2 个回答

2

这段内容是关于编程问题的讨论,可能涉及一些技术细节。为了让初学者更容易理解,我会用简单的语言来解释。

首先,大家在讨论一个特定的编程问题,可能是遇到了错误或者想要实现某个功能。通常,程序员会分享他们的代码片段,像

f = open('text.txt','rb')
filter = []
rows = []
for line in f:
    line = line.replace('\r\n','')
    data = line.split(' ')
    if len(data) >= 3:
        if not data[2] in filter:
            filter.append(data[2])
            rows.append(data)
f.close()

f = open('output.txt','wb')
for row in rows:
    f.write(row[0] + ' ' + row[1] + ' ' + row[2] + '\r\n')
f.close()
这样的占位符就是用来表示代码的地方。

在这个讨论中,参与者会提出他们的看法,分享解决方案,或者询问更多的细节。这种交流方式帮助大家互相学习,找到解决问题的方法。

总之,这段内容主要是程序员们在一起讨论和解决编程问题的过程,大家通过分享经验和代码来帮助彼此。

8

Unix的sort命令可以帮你完成这个工作:

cat file | sort -u -k3,3n
a b 1.1
c d 2.3
cat file | sort -u -k3,3rn
c d 2.3
a b 1.1

撰写回答