我正在尝试学习 bash/shell *nix 命令/脚本。因此,我没有编写 python 程序,而是想使用 bash/awk 等来尝试它,但我遇到了困难。我有一个巨大的文本(实际上是 csv )文件
id_1, id_2, some attributes.
我想根据 id2 对这个文件进行排序?我该怎么做呢?谢谢
使用 的--key
选项sort
。
例如,以下input.csv
对第二个字段进行排序(使用逗号作为字段分隔符)并将输出写入output.csv
.
sort --key=2,2 -t',' input.csv > output.csv
-n
ps如果您进行数字排序,请不要忘记使用该选项。
有关详细信息,请参阅sort 的手册页。
您可以使用sort(1)的-k选项
-k, --key=POS1[,POS2]
start a key at POS1, end it at POS2 (origin 1)
sort -t, -k2 filename.csv
我没有shell可以验证,但基本上你需要指定分隔符和排序键
签出命令剪切:
cat file.cvs | cut -d";" -f 2 | sort
我假设您的 csv 是用分号分隔的,但您可以更改它。
保存为不同的名称:
cat file.cvs | cut -d";" -f 2 | sort > newfile.txt