【问题标题】:Alignment of columns in lsof and pslsof 和 ps 中的列对齐
【发布时间】:2016-10-24 21:46:17
【问题描述】:

我正在将popen 的输出解析为lsofps

我想知道第一列和最后一列总是左对齐吗?其余的总是右对齐?如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

【问题讨论】:

    标签: c++ ps lsof


    【解决方案1】:

    您得到的输出可能是默认格式。 在 popen 中传递 shell 命令时,还要添加格式选项。

    将 column 命令通过管道传递给您的 lsof 命令。

    例如:

    反转对齐方式

    lsof -ps |列-t |转

    粗略的例子:

    //用于反转对齐方式。

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

    如果只是将所有内容都对齐到左侧,请使用“column -t”

    也许你可以通过管道“column -c”来指定列的宽度。

    您可以在下面的链接中找到更多选项。 http://man7.org/linux/man-pages/man1/column.1.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2017-05-02
      • 2019-05-05
      相关资源
      最近更新 更多