对lsof和ps中的列进行对齐
Alignment of columns in lsof and ps
我正在解析popen
到lsof
和ps
的输出。
我想知道第一列和最后一列总是左对齐吗?其余的都是正对的吗?如列FD
所示,列3
的最小宽度是多少?
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEn
bash 252 noida cwd DIR 1,2 1088 410828 /Users/noida ion/Desktopn
bash 252 noida txt REG 1,2 628736 11647 /bin/bashn
bash 252 noida txt REG 1,2 622896 11866 /usr/lib/dyldn
bash 252 noida txt REG 1,2 382100934 418209 /private/var/db/dyld/dyld_shared_cache_x86_64n
bash 252 noida 0u CHR 16,0 0t401079 601 /dev/ttys000n
bash 252 noida 1u CHR 16,0 0t401079 601 /dev/ttys000n
bash 252 noida 2u CHR 16,0 0t401079 601 /dev/ttys000n
bash 252 noida 255u CHR 16,0 0t401079 601 /dev/ttys000n
0u000bu0001
您得到的输出可能是默认的格式化输出。当在popen中传递shell命令时,也要添加格式选项。
将列命令管道到您的lsof命令。
,
反转对齐
lsof -ps | column -t | rev
粗糙的例子:
//用于反转对齐。
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
相关文章:
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- 如何创建一个QTableWidgetItem,用长文本右对齐,左边有省略号
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 64位机器上的C++内存对齐
- 为什么我可以将变量存储在不是其最小对齐方式的倍数的地址?
- 使 std::vector 分配对齐内存的现代方法
- C++ cout 将双精度对齐到精度 2 并正确对齐
- 在 64 位边界上对齐C++结构数组?
- 使用 g++7 构建的代码在访问未对齐的内存时崩溃
- 在 capnp FlatArrayMessageReader 的对齐内存缓冲区中接收 zmq 消息
- 是否值得对齐变量?
- 初始化派生结构的基部分/意外打包派生结构字段以对齐基结构的间隙
- 对齐和对齐的实际用例C++关键字
- 如何减少代码的运行时间以对齐文本?
- 指向包含对齐 C 结构C++类的 C 指针的对齐问题
- Linux C++ 中的页面对齐内存分配
- C++ 类层次结构中的"对齐"是什么意思?
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 具有调整对齐方式的类型定义
- 对lsof和ps中的列进行对齐