+ x опция для сортировки по Linux Программирование? - PullRequest
0 голосов
/ 26 мая 2020

Я изучаю Unix / Linux программирование из: https://www.tutorialspoint.com/unix/

Я хочу распечатать все файлы, содержащие слово «test» в домашнем каталоге, отсортированные по их название. Итак, я выполняю следующую команду:

ls -la | grep "test.*" | sort +6

+6 означает игнорирование первых 6 столбцов и сортировку на основе 7-го столбца, который является именем файла. Но я получаю следующую ошибку:

sort: cannot read: +6: No such file or directory

Что происходит не так и как это исправить?

Ответы [ 3 ]

3 голосов
/ 26 мая 2020

На страницах ничего не говорится о параметре +. Похоже, вы ищете sort -k 6:

-k, --key = KEYDEF
сортировать по ключу; KEYDEF дает местоположение и тип

2 голосов
/ 26 мая 2020

Ваше руководство кажется довольно плохим.

Мой sort не принимает символ +. Проверить man sort. Похоже, он обрабатывает любой аргумент, который не начинается с da sh, как имя файла, отсюда и ошибка.

Тем не менее, вам не нужно grep фильтровать для теста, вы можете просто сделать это оболочкой (подстановка оболочки):

ls -l test.*

ls также может сортировать , так что вам, возможно, не потребуется подключаться к sort. ls поддерживает

  • -t время модификации
  • -S размер файла
  • -X расширение

Использование -r, чтобы изменить порядок сортировки. Подробнее см. man ls.

2 голосов
/ 26 мая 2020

Добро пожаловать в Linux кодирование.

Во-первых, с чего нужно начать: не разбирать ls вывод .

printf '%s\n' *test* | sort -V
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...