用空列对管道定界文件进行排序

Ser*_*rge 4 unix linux sorting

我在使用排序时遇到问题,我认为这是由于我要排序的列之前有一个空列。我对文件进行了排序sort -n -t'|' -k4 testme -o testedsort,这是testedsort的输出

N|N||+006422931|+000359029|OVERLAY 
N|N|A|+000000020|+000000000|580    
N|N|A|+000000020|+000000020|705    
N|N|A|+000008035|+000000000|800    
N|N|A|+000009701|+000000000|723    
N|N|A.|+000009701|+001569434|742   
N|N|A|+000009701|+001569434|742    
N|N|A|+000013723|+000000000|DLORGN 
N|N|A|+000020963|+000000020|729    
N|N|A|+000022110|+004066830|GRANT  
Run Code Online (Sandbox Code Playgroud)

看起来,除了第一条记录外,其他所有内容都还不错,而唯一的例外是我们有一个空列。有没有人看过这个,关于如何解决这个有什么建议吗?

iru*_*var 6

要修复的两件事

  1. 假设您只想按第四个字段排序,请将排序键指定为 -k4,4
  2. 要处理前导+数字,请使用-g代替-n(可能是GNU sort特定的)

    sort -k4,4g -t'|' testme -o testedsort
    
    Run Code Online (Sandbox Code Playgroud)