Как использовать команду «memusage» для проверки использования памяти конкретной программы

LinuxMint основан на Debian, который, очевидно, не имеет инструмента для этого. Вы можете переустановить соответствующие пакеты, как описано в Восстановление прав доступа в системе Debian. Это переустанавливает всё:

sudo apt-get --reinstall install `dpkg --get-selections | grep install | grep -v deinstall | cut -f1`

Если бы это была система на базе RPM, в принципе, можно было бы проверить наличие изменённых пакетов и уменьшить боль от переустановки. Переустановка пакетов в Debian, однако, менее болезненна, чем первоначальная установка.

Если вы хотите определить пакеты, которые вы недавно установили, вы можете сделать это с помощью поиска в журналах dpkg, как описано в Список пакетов по дате установки.

2
31.07.2018, 13:33
4 ответа

Вsed:

sed -r 's/(.* |^)([^ ]*) has address ([^ ]*)(.*|$)/\2,\3/' myfile > newfile

Пояснение

  • sed -r 's/foo/bar/' myfile > newfile:используйте sedс «расширенными регулярными выражениями» (-r), поэтому нам не нужно экранировать группы захвата ()ниже. Замените вхождения fooна bar. Чтение из myfileи запись в newfile.
  • (.* |^)([^ ]*) has address ([^ ]*)(.*|$):найдите строку has address, перед и после которой следует пробел. До и после этого должна быть строка без пробелов, которую мы должны захватить в группу ([^ ]*). Перед ведущим словом должен стоять либо пробел (, которому предшествует что угодно, .*), либо начало строки, т. е. (.* |^). После следующего слова должен быть либо пробел (, за которым следует .*), либо конец строки, т.е. (.*|$).
  • \2,\3:выражение выше захватывает всю строку, поэтому замените его второй и третьей захватывающими группами, то есть словом до и после has address.
3
27.01.2020, 21:51

Вawk:

awk -v OFS=, '
  {
    for(i=1;i<NF;i++){
      j=i+1;
      if ($i=="has" && $j=="address") {
        domain=i-1;
        ip=i+2;
        print $domain,$ip;
        break;
      }
    }
  }'

Просматривает поля в цикле, и если он находит «имеет», а следующим полем является «адрес», он печатает поля до и после этого с ,в качестве разделителя полей вывода.

0
27.01.2020, 21:51

Использование grepиsed:

grep -o '[^ ]* has address [^ ]*' | sed 's/ has address /,/'

Мне нравится этот, потому что он такой простой.


Пояснение:

grepвыводит только совпадающую(-o)часть каждой строки, которая находит следующий шаблон:

  • любой символ, не являющийся пробелом ([^ ]*), за которым следует has address, за которым снова следует любой символ, не являющийся пробелом([^ ]*).

sedпросто заменит has addressна,

4
27.01.2020, 21:51
perl -nE '/(\S+) has address (\S+)/ and say "$1,$2"' x
2
27.01.2020, 21:51

Теги

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