如何逐列按字母顺序排列CSV文件中的所有行?

Vil*_*age 1 sorting bash awk

我有一个三列CSV文件,如下所示:

chips@food@f
pizza@food@f
tiger@animal@a
fish@animal@a
marshmallow@food@f
New Years@festivals@f
Run Code Online (Sandbox Code Playgroud)

我需要对行进行按字母顺序排列,首先是第3列,然后是第2列,然后是第1列.输出将是:

fish@animal@a
tiger@animal@a
New Years@festivals@f
chips@food@f
marshmallow@food@f
pizza@food@f
Run Code Online (Sandbox Code Playgroud)

如何以这种方式对数据进行排序?

  • 有些列包含UTF-8数据.

kev*_*kev 7

你可以尝试sort命令:

$ sort -t@ -k3,3 -k2,2 -k1,1 input.csv
fish@animal@a
tiger@animal@a
New Years@festivals@f
chips@food@f
marshmallow@food@f
pizza@food@f
Run Code Online (Sandbox Code Playgroud)