数字线由我场有包含这些字符,在我的分隔符/分隔符是##@##
一个文本文件:排序在AWK
Steve##@##Jobs##@##Apple Inc.##@##32421213
Bill##@##Gates##@##Microsoft Corp.##@##234213
Steve##@##Wozniak##@##Apple Inc.##@##12343
Tim##@##Cook##@##Apple Inc.##@##323345223
现在,我希望他们能够被第三场数值&升序。我读到可以使用bash命令sort
,这不幸只支持单个字符作为分隔符。
最终排序的文件应该正好是这样的一个:
Steve##@##Wozniak##@##Apple Inc.##@##12343
Bill##@##Gates##@##Microsoft Corp.##@##234213
Steve##@##Jobs##@##Apple Inc.##@##32421213
Tim##@##Cook##@##Apple Inc.##@##323345223
是否有某种修复或我可以做到这一点使用AWK?
这是标准的方法,但是使用'\ t'代替'|'作为分隔符,因为这是默认的'sort'分隔符,这样你就可以告诉排序只使用第一个字段(因为YMMV的顺序是'|'vs其他字符),所以你可以在之后使用它的默认分隔符:'awk -F'## @ ##'-v OFS ='\ t''{print $ 4,$ 0}'输入| sort -k1,1n |切-f2-'。 –