根据字段中的字符对文本文件进行排序

Com*_*erd 1 text-processing sort

我有一个名为 : 的文件newfile,其中包含以下数据

1 AC BB CC
2 AB CC DD
3 CA BB CC
4 BE DD EE
5 BD AA AA
Run Code Online (Sandbox Code Playgroud)

我在bash中输入以下命令,根据第二个字符,第二个字段对数据进行排序

排序 -k3 新文件

我期待以下结果

3 CA BB CC
2 AB CC DD
1 AC BB CC
5 BD AA AA
4 BE DD EE
Run Code Online (Sandbox Code Playgroud)

为什么我得到以下结果,我应该如何根据第三个字符解决(忽略空白)

5 BD AA AA
1 AC BB CC
3 CA BB CC
2 AB CC DD
4 BE DD EE
Run Code Online (Sandbox Code Playgroud)

lge*_*get 7

对字段中的特定字符进行排序(即由空白字符包围的字符块)。您可以使用此特定语法:

sort -k 1.4 file
Run Code Online (Sandbox Code Playgroud)

这将按文件的第四个字符排序。有关详细信息,请参阅/sf/ask/866859451/

如果您在使用 时遇到违反直觉的结果-k,请添加该选项-b。这将使sort忽略空白。所以

sort -b -k 2.2 file
Run Code Online (Sandbox Code Playgroud)

给出你想要的:第二个字段的第二个字符,忽略空格。