Как обернуть вывод команды watch?

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

Пример "острота":

echo /abc/bcd/cdf | awk -vpath=/abc/bcd/chi/hij -F/ '{ OFS="\n";len=0; split(path, components); for (i=1; i<=NF; i++) if($i == components[i])len+=1+length($i);else break;print substr($0, 1, len - 1), substr($0, len + 1), substr(path, len + 1);exit;}

Отформатированная версия с комментариями:

$ cat longest-path.awk
#!/usr/bin/awk -f
BEGIN {
    FS="/";   # split by slash
}
{
    len=0;                      # initially the longest path has length 1
    split(path, components);    # split by directory separator (slash)
    for (i=1; i<=NF; i++) {     # loop through all path components
        if ($i == components[i]) {
            len += 1 + length($i);
        } else {
            break;              # if there is a mismatch, terminate
        }
    }
    print substr($0, 1, len - 1);  # longest prefix minus slash
    print substr($0, len + 1);     # remainder stdin
    print substr(path, len + 1);   # remainder path
    exit;                          # only the first line is compared
}
$ echo  /abc/bcd/cdf | ./longest-path.awk -vpath=/abc/bcd/chi/hij
/abc/bcd
cdf
chi/hij
8
06.12.2018, 19:30
2 ответа

Конвейер вывода для свертывания, чтобы обернуть вывод по указанной ширине (по умолчанию 80):

watch -d "ps -efww | grep '[j]ava' | fold -s"
  • Используйте флаг -w of ps для широкого вывода и дважды для неограниченного вывода.
  • fold -s разбивается на пробелы.
  • Также обратите внимание на команду grep . Я изменил java на [j] ava . Таким образом процесс grep не будет соответствовать самому себе в выводе ps .
6
27.01.2020, 20:12

Дополнительно:

Вы также можете попробовать указать ширину; это позволит полностью использовать ширину экрана.

В моем случае следующий результат дает идеально сформированный результат. Настройте параметр ширины в соответствии с размером монитора / терминала:

watch -d "ps -ef --width 1000 | grep java | grep -v grep  "
2
27.01.2020, 20:12

Теги

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