Выравнивание столбцов в lsof и ps

Я работал над анализом вывода popen в lsof а также ps,

Мне было интересно, всегда ли первый и последний столбец выровнены по левому краю? А остальные между ними всегда выровнены? И как видно в столбце FD, минимальная ширина столбца 3?

Например:

COMMAND PID  USER   FD   TYPE DEVICE  SIZE/OFF   NODE NAME\n
bash    252 noida  cwd    DIR    1,2      1088 410828 /Users/noida ion/Desktop\n
bash    252 noida  txt    REG    1,2    628736  11647 /bin/bash\n
bash    252 noida  txt    REG    1,2    622896  11866 /usr/lib/dyld\n
bash    252 noida  txt    REG    1,2 382100934 418209 /private/var/db/dyld/dyld_shared_cache_x86_64\n
bash    252 noida    0u   CHR   16,0  0t401079    601 /dev/ttys000\n
bash    252 noida    1u   CHR   16,0  0t401079    601 /dev/ttys000\n
bash    252 noida    2u   CHR   16,0  0t401079    601 /dev/ttys000\n
bash    252 noida  255u   CHR   16,0  0t401079    601 /dev/ttys000\n
0\u000b\u0001

1

Решение

Выходная информация, которую вы получаете, может быть отформатированной по умолчанию.
При передаче команды оболочки в popen также добавьте параметры формата.

Передайте команду column к вашей команде lsof.

например:

отменить выравнивание

lsof -ps | столбец -t | оборот

грубый пример:

// для отмены выравнивания.

FILE *fp;
char pOpenCmd[100] = "lsof -ps | column -t | rev";
fp = popen(pOpenCmd, "r");

просто выровняв все по левой стороне, используйте «column -t»

может быть, вы можете передать «столбец -c», чтобы указать ширину столбцов.

У вас есть еще несколько вариантов здесь в этой ссылке ниже.
http://man7.org/linux/man-pages/man1/column.1.html

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]