2015-09-22 8 views
3

команда Сортировка не работает должным образом при использовании запятой в качестве разделителя полей:Команда сортировки не работает должным образом, ошибка или функция?

Файл:

cat /tmp/2.csv 
66.199.199.221,115645,0 
207.233.77.147,120167,0 
204.38.48.1,125767,0 
83.144.97.50,127944,3 
12.174.177.15,134080,0 
195.76.177.90,138124,0 
50.202.17.163,162618,0 
66.64.209.30,163729,0 
40.76.63.140,181976,0 
207.241.237.163,2226,1854 

Наблюдайте линии 207.241.237.163,2226,1854:

Сортировка:

sort -t, -nk 2 /tmp/2.csv 
66.199.199.221,115645,0 
207.233.77.147,120167,0 
204.38.48.1,125767,0 
83.144.97.50,127944,3 
12.174.177.15,134080,0 
195.76.177.90,138124,0 
50.202.17.163,162618,0 
66.64.209.30,163729,0 
40.76.63.140,181976,0 
207.241.237.163,2226,1854 

Но она отлично работает при использовании TSV:

sort -nk 2 /tmp/3.tsv 
207.241.237.163 2226 1854 
66.199.199.221 115645 0 
207.233.77.147 120167 0 
204.38.48.1  125767 0 
83.144.97.50 127944 3 
12.174.177.15 134080 0 
195.76.177.90 138124 0 
50.202.17.163 162618 0 
66.64.209.30 163729 0 
40.76.63.140 181976 0 

испытано с различными версиями рода:

sort --version 
sort (GNU coreutils) 8.21 
Copyright (C) 2013 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

Written by Mike Haertel and Paul Eggert. 

И:

sort (GNU coreutils) 8.4 
Copyright (C) 2010 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

Written by Mike Haertel and Paul Eggert. 

ответ

4

Вам необходимо установить ключ только на втором поле т.е. -k2,2, в противном случае, если вы используете -k2 все поля, начиная с второй до конца рассматриваются как ключи.

Работая один:

$ sort -t, -k2,2n file.txt 
207.241.237.163,2226,1854 
66.199.199.221,115645,0 
207.233.77.147,120167,0 
204.38.48.1,125767,0 
83.144.97.50,127944,3 
12.174.177.15,134080,0 
195.76.177.90,138124,0 
50.202.17.163,162618,0 
66.64.209.30,163729,0 
40.76.63.140,181976,0 

Нерабочий одно:

$ sort -t, -k2n file.txt 
66.199.199.221,115645,0 
207.233.77.147,120167,0 
204.38.48.1,125767,0 
83.144.97.50,127944,3 
12.174.177.15,134080,0 
195.76.177.90,138124,0 
50.202.17.163,162618,0 
66.64.209.30,163729,0 
40.76.63.140,181976,0 
207.241.237.163,2226,1854 
Смежные вопросы