我正在寻找解决此问题的最简单方法。我有一个巨大的数据集,我无法加载到这种类型的格式
This is a sentence|10
This is another sentence|5
This is the last sentence|20
我想要做的是根据数字从最小到最大排序。
cat MyDataSet.txt | tr "|" "\t" | ???
不确定这样做的最佳方式是什么,我正在考虑使用awk来切换列并进行排序,但是我无法做到这一点。
请帮帮我
答案 0 :(得分:35)
sort -t\| -k +2n dataset.txt
应该这样做。字段分隔符和备用密钥选择
答案 1 :(得分:13)
您通常不需要cat将文件发送到过滤器。也就是说,您可以使用 sort 过滤器。
sort -t "|" -k 2 -n MyDataSet.txt
使用|对MyDataSet.txt文件进行排序字符作为字段分隔符,并根据第二个字段(数字)进行数字排序。
答案 2 :(得分:7)
$ sort -n inputFile
This is another sentence|5
This is a sentence|10
This is the last sentence|20
你也可以用awk切换列
$ awk -F"|" '{print $2"|"$1}' inputFile
10|This is a sentence
5|This is another sentence
20|This is the last sentence
结合awk和sort:
$ awk -F"|" '{print $2"|"$1}' inputFile | sort -n
5|This is another sentence
10|This is a sentence
20|This is the last sentence
每条评论
如果句子中有数字
$ sort -n -t"|" -k2 inputFile
This is another sentence|5
This is a sentence|10
This is the last sentence|20
this is a sentence with a number in it 2|22
当然你可以将它重定向到一个新文件:
$ awk -F"|" '{print $2"|"$1}' inputFile | sort -n > outFile
答案 3 :(得分:3)
尝试此排序命令:
sort -n -t '|' -k2 file.txt
答案 4 :(得分:2)
按编号排序,更改分隔符并使用sort获取第二组。
sort -n -t'|' -k2 dataset.txt