Нужна помощь с командой UNIX ниже, чтобы отсортировать файл по следующим словам, от основного ключа сортировки до вспомогательного ключа сортировки: слово 3, слово 1, слово 4. (слова разделяются пробелами)

sort -t -k3 -k1 -k4> newfile.txt не работает

1 ответ1

3

Короткий ответ: избавьтесь от -t или укажите -t" " или подобное, чтобы указать один символ в качестве разделителя.

Итак:sort -k3 -k1 -k4 in.txt > newfile.txt

В деталях...

in.txt

one two three four
the quick brown fox
jumps over the lazy dog
pun poo three poor
one two three four five
the elegant brown zebra

bash cmd

  • Вы сортируете слова, так что я просто показываю, как указать опцию -d для словарной сортировки. Вы можете использовать числовую сортировку с опцией -g для других ситуаций.
  • Вам нужны пробелы - это то, что сортировка использует по умолчанию. В противном случае вам нужно будет использовать -t"," или подобное.
  • Итак, cmd это:

    sort -k3,3d -k1,1d -k4,4d in.txt > newfile.txt

newfile.txt

the quick brown fox
the elegant brown zebra
jumps over the lazy dog
one two three four
one two three four five
pun poo three poor

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .