Выберите строки, начинающиеся с определенных цифр

Выберите строки, начинающиеся с определенных цифр

Мне нужно показать PID, PPIDи STATUSпроцессов в системе, но только те, которые PIDначинаются с чисел в диапазоне 5-8. Поэтому я попробовал что-то вроде этого...

ps xao pid,ppid,s | grep ' 5'

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

решение1

ps xao pid,ppid,s | grep '^ *[5-8]'

Если PID состоит из пяти цифр, у вас нет пробела в начале строки, отсюда и часть ' *'после grep. '^'^ищет только в начале (таким образом, не выбирая PPID, начинающийся с 5,6,7,80 и. '[5-8]'обрабатывает диапазон чисел, который вы хотели (также можно сделать '[5678]')

решение2

Попробуй это :

ps xao pid,ppid,s | grep '^ *[5-8]'
  • ^означает: начало строки (или строки)
  • *является квантификатором (для предшествующего символа): ноль или N
  • []это метасимвол для обозначениядиапазон, здесь от 5 до 8

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