繁体   English   中英

通过shell,awk,bash排序?

[英]Sorting through shell, awk, bash?

我正在尝试学习bash / shell * nix命令/脚本。 因此,除了编写python程序外,我还想使用bash / awk等进行尝试,但遇到了麻烦。 我有一个很大的文本(实际上是csv)文件

 id_1, id_2, some attributes.

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

使用--key选项进行sort

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

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

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

有关更多信息,请参见手册页进行排序

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

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

  start a key at POS1, end it at POS2 (origin 1) 
sort -t, -k2 filename.csv

我没有要验证的外壳,但是基本上您需要指定分隔符和排序键

签出命令剪切:

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

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

保存为其他名称:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM