`top` – какой-нибудь ярлык для отображения процессов только текущего пользователя?

Оператор условного тестирования Bash [[может сравнивать имена файлов с регулярным выражением и извлекать выражения в скобках:

shopt -s nocaseglob
for f in *booklets*
do
  [[ $f =~ ([[:digit:]]+)[^[:digit:]]?booklets ]] && echo "${BASH_REMATCH[1]}"
done

Это зациклится на каждом файле, который содержит (регистрозависимое -нечувствительное )слово "буклеты" в текущем каталоге. Если вы хотите, чтобы что-то выполнялось одновременно с одним файлом, вы можете упростить описанное выше и поместить это в скрипт или функцию :

.
extractnumber ()
(
    shopt -s nocaseglob
    if [ ! -f "$1" ]; then echo "File $1 not found!"; return 1; fi
    [[ $1 =~ ([[:digit:]]+)[^[:digit:]]?booklets ]] && echo "${BASH_REMATCH[1]}";
)

... и затем назовите его:

$ extractnumber 35BOOKLETS.pdf
35
$ extractnumber MATH232\ Exam\ 01\ 99\ booklets.pdf
99
$ extractnumber 101s18-exam02--100-booklets.pdf
100
$ extractnumber foobar
File foobar not found!
0
10.02.2020, 13:40
1 ответ

Да,

Вместо этого вы можете использовать идентификатор пользователя. Это работает как в интерактивном режиме, так и с использованием параметров командной строки

.
man top
-u | -U  :User-filter-mode as:  -u | -U number or name
            Display  only  processes  with a user id or user name matching that given.
2
28.04.2021, 23:23

Теги

Похожие вопросы