0

我正在尝试学习 bash/shell *nix 命令/脚本。因此,我没有编写 python 程序,而是想使用 bash/awk 等来尝试它,但我遇到了困难。我有一个巨大的文本(实际上是 csv )文件

 id_1, id_2, some attributes.

我想根据 id2 对这个文件进行排序?我该怎么做呢?谢谢

4

4 回答 4

4

使用 的--key选项sort

例如,以下input.csv对第二个字段进行排序(使用逗号作为字段分隔符)并将输出写入output.csv.

 sort --key=2,2 -t',' input.csv > output.csv

-nps如果您进行数字排序,请不要忘记使用该选项。

有关详细信息,请参阅sort 的手册页

于 2012-09-10T14:20:15.057 回答
2

您可以使用sort(1)的-k选项

-k, --key=POS1[,POS2]

         start a key at POS1, end it at POS2 (origin 1)
于 2012-09-10T14:19:58.213 回答
2
sort -t, -k2 filename.csv

我没有shell可以验证,但基本上你需要指定分隔符和排序键

于 2012-09-10T14:24:21.017 回答
1

签出命令剪切:

cat file.cvs | cut -d";" -f 2 | sort

我假设您的 csv 是用分号分隔的,但您可以更改它。

保存为不同的名称:

cat file.cvs | cut -d";" -f 2 | sort > newfile.txt
于 2012-09-10T14:18:51.863 回答