仅在第二列上排序

Jav*_*Jav 25 sort columns

我正在尝试对通常(并非总是)行所在的文件进行排序

whatever:[A-Ba-b0-9_]: values
Run Code Online (Sandbox Code Playgroud)

其中字段用:. 有些行不遵循这种模式,我对它们不感兴趣,它们可以在输出中的任何位置。

我只想对第二列(而不是值)上的行进行排序,但是当我这样做时sort -t: -k 2 myfile,它会在所有行上对文件进行排序。

如何使用-k以拥有我需要的东西?

Sté*_*las 38

sort -t: -k2
Run Code Online (Sandbox Code Playgroud)

对从第二个字段到行尾的行部分进行排序。如果要对第二个字段进行排序,则必须指定排序键的结束位置:

sort -t: -k2,2
Run Code Online (Sandbox Code Playgroud)

仅对第二个字段进行排序。