Утилиты GNU (Linux, Cygwin) и BusyBox имеют tac
команда, которая инвертирует порядок строк в текстовом файле.
В системах, которые не имеют tac
, можно работать он от стандартных команд. Ответ Chris Down показывает несколько способов сделать это, храня файл полностью в памяти. Для очень большого файла путь, который будет работать, не перегружаясь над большинством нельдов, состоит в том, чтобы сделать sort
сделайте реверсирование. Это не столь эффективно для файлов среднего размера, но реализации вида могут обычно справляться с файлами, которые больше, чем доступная память.
nl | sort -nr | sed 's/.*\t//'
(Замена \t
литеральным символом табуляции.)
Как уже отмечено Michael Mrozek, инвертирование строк является плохим способом предварительно ожидать данные в файл. Метод трудно понять и выполняет большую дополнительную работу.
Строка %_denyhosts ALL=(ALL) ALL
средства это пользователи в _denyhosts
группе разрешают выполнить любую команду как любому пользователю. Это не то, что Вы пытаетесь сделать: необходимо позволить пользователю ******
к командам выполнения как пользователь _denyhosts
и группа _denyhosts
. Что-то как:
****** ALL = (_denyhosts : _denyhosts) ALL
Необходимо будет удостовериться, что даже при том, что пользователи в _denyhosts были добавлены к sudoers файлу, что пользователи Вы хотите смочь выполнить эту команду, добавляются к группе _denyhosts в/etc/group.
$ sudo vi /etc/group
*snip*
_denyhosts:x:###:username1,username2,username3
Сохраните файл 'группы' и повторную попытку.