Команда для удаления первого N числа строк на входе

Задний план

Я запускаю SSH-сервер и хочу, чтобы этот пользователь хотел удалить. Я не могу удалить этого пользователя, потому что в настоящее время он запускает несколько процессов, которые мне нужно сначала убить.

Это конвейер, который я использую в настоящее время для выяснения всех идентификаторов процесса пользователя, которого я использую в настоящее время:

ps -u user | awk '{print $1;}' 

Результат выглядит следующим образом:

 PID 2121 2122 2124 2125 2369 2370 

Я хочу передать это, чтобы kill -9 чтобы убить все процессы, чтобы я мог удалить этого глупого пользователя следующим образом:

 ps -u user | awk '{print $1;}' | sudo xargs kill -9 

Но это не работает из-за заголовка PID :

 kill: failed to parse argument: 'PID' 

Вопрос

Я думаю, что должна быть простая команда Unix для удаления первой строки ввода.

Я знаю, что я могу использовать для этого tail но я не хочу подсчитывать, сколько строк содержит вход, чтобы точно определить, сколько я хочу отображать.

Я ищу что-то вроде head или tail но инвертированное (вместо отображения только первой / последней части потока он отображает все, кроме начала / конца потока).

Заметка

Мне удалось решить эту проблему, просто добавив | grep [[:digit:]] | grep [[:digit:]] после моей команды awk но я все еще ищу способ удалить первую строку файла, как я думаю, будет весьма полезен в других сценариях.

2 Solutions collect form web for “Команда для удаления первого N числа строк на входе”

ПРИМЕЧАНИЕ. Если ваша система уже имеет pgrep / pkill то вы повторно изобретаете колесо здесь. Если ваша система не имеет этих утилит, то вы должны иметь возможность форматировать вывод ps для получения необремененного списка PID непосредственно, например, ps -u user -opid=

Если вы уже используете awk , нет необходимости проходить через дополнительный процесс, чтобы удалить первую строку (запись): просто добавьте условие на номер записи NR

 ps -u user | awk 'NR>1{print $1;}' 

Поскольку вы упоминаете head и tail , формула, которую вы, вероятно, хотите в этом случае, имеет tail -n +2

Когда я писал этот вопрос, я выяснил решение, использующее sed .

Удаление одной строки в начале ввода

Для удаления одной строки используйте sed 1d .

Удаление нескольких строк при начале ввода

Чтобы удалить N количество строк, используйте sed 1,Nd

  • Для удаления первых 5 строк используйте sed 1,5d

  • Чтобы удалить первые 10 строк, используйте sed 1,10d

  • Чтобы удалить первые 25 строк, используйте sed 1,25d

Трубопровод

Таким образом, конвейер становится в сценарии:

 ps -u user | awk '{print $1;}' | sed 1d | sudo xargs kill -9 ^ removes the PID header 
  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Извлечь диапазон элементов из i-го элемента в j-й элемент, вплоть до n-го элемента из списка
  • Tail -f передается через grep, не выводящий в файл, но выводит на консоль
  • Только кошка из определенной строки X (с рисунком) в другую определенную строку Y (с рисунком)
  • Как получить строки от 10 до 100 из 200-строкового файла в новый файл
  • Помощь с модификацией команды
  • Интерактивный, скрытый живой хвост из нескольких файлов?
  • Мониторинг файла журнала и выполнение различных команд в зависимости от разных условий
  • Файл журнала хвоста на нескольких машинах по ssh
  • Выполнение хвоста -f в текстовом файле поверх sshfs не работает. Зачем?
  • Можно ли «перевернуть» символическую ссылку на новый файл, не затрагивая никаких открытых дескрипторов файлов?
  • Interesting Posts

    Bash запоминает неправильный путь к исполняемому файлу, который был перемещен / удален

    Предоставление пользователю права на папку в домашнем каталоге

    Linux – остановить процесс, выполняемый как демон

    Почему мой именованный канал продолжает меняться?

    Получение pid скрипта bash от себя

    Как найти все файлы в папке, содержащей совпадение регулярного выражения в имени файла?

    Obmenu не запускается: говорит, что мне не хватает модуля GTK

    -p и -o comm не работают вместе?

    Ошибки таймаута во FreeBSD zfs

    Есть ли в Linux Linux-драйвер SDIO для пользователя?

    При использовании rsync необходимо передать конкретный файл перед другим

    Тест Bash -v не работает с ассоциативными массивами в 4.3.46

    Два 500GB (JBOD) вытесняют NAS-200 в UBUNTO 14-04 и возвращают в LVM для доступа к старой информации

    Почему это исключает шаблон для rsync, дает разные результаты, когда исходный каталог имеет завершающую косую черту?

    ping: неизвестный хост с включенным iptables

    Linux и Unix - лучшая ОС в мире.