Как сортировать столбцы независимо?

Как сортировать столбцы независимо?
$ sort -t $'\t' -k 1rn,1 -k 2,2rn -k 3f,4 listaprezzi

2050        900           bananas     5
1905        700           grapes      17
250         4000          oranges     10
230         9200          figs        4
220         5000          lemons      10
200         8000          pears       8

Я хочу отсортировать 1-й столбец по listaprezziномерам в обратном порядке (опция rn), 2-й также rn, а третий по алфавиту ( f). Какая правильная команда?

Я перепробовал много способов, но безуспешно.

решение1

Если я правильно понял ваш вопрос, вы хотите переупорядочить ваши данные, т.е. независимо отсортировать (вверх или вниз) разные поля одной и той же строки. Вы не можете сделать это с помощью bare sort, вам нужно использовать дополнительные инструменты, например с помощью awkи pasteвы можете написать следующее:

$ paste <(awk '{print $1}' listaprezzi | sort -nr) <(awk '{print $2}' \
  listaprezzi | sort -nr) <(awk '{print $3}' listaprezzi | sort) <(awk \
  '{print $4}' listaprezzi)

И результат

2050    9200    bananas   5
1905    8000    figs      17
250     5000    grapes    10
230     4000    lemons    4
220     900     oranges   10
200     700     pears     8

Связанный контент