2014-04-10 7 views
0

Я использую следующую команду сортировки для сортировки двух полей в порядке desc, и есть вероятность того, что второе поле может быть пустым в некоторых случаях. ДанныеКоманда сортировки Unix с пустым значением

sort -k 1.1,1.2n -brn -k 1.5,1.6 -o 

образец:

112321 
112422 
112526 
1124 
112623 

выход должен быть ниже

1124 
112526 
112623 
112422 
112321 

Можете ли вы помочь мне с решением, спасибо !!!!

+0

Будет сложно найти недостающее поле (после '1124') для сравнения выше любого из настоящих полей. –

ответ

0

Сделайте это как две отдельные команды и соедините результаты.

{ grep -v '^.....' input | sort -k 1.1,1.2n; 
    grep '^.....' input | sort -k 1.1,1.2n -brn -k 1.5,1.6; } > output 
+0

Я использую команду sort через java, используя Runtime.getRuntime(). Exec (UNIXCOMMAND)
Вы все еще можете использовать thee concatenate для объединения результата .......... – user3521574

+0

Если он запускает команды через оболочку, то вы должны уметь все это делать в 'UNIXCOMMAND'. – Barmar

+0

в приведенной выше команде, где мы фактически указываем, какой файл должен быть отсортирован. – user3521574