Ps

ps:格式(分隔符和寬度)

  • January 22, 2018

我想指定列分隔符

ps -o "%a|%p"        # separator |

列寬

ps -o cmd:50,pid     # width 50 for cmd

一個命令中。這可能嗎??

這與列寬無關,但我想要完整的命令,即使它不是最後一列。

-o 命令是附加的,所以只需執行多個:

ps -a -o "cmd:50 " -o "|%p"
CMD                                               |  PID
/usr/lib/gnome-session/gnome-session-binary --auto| 4158

問題是你會在 PID 周圍得到一些空格作為它的右對齊。你可以看到上面的4158在管道後面有一個空格。

我需要完整的命令和 PID。命令應該是第一個。

因為您需要按預定義的順序(cmdpid)調整 2 列的輸出,所以
這裡是**ps+ “trick”sed**

ps -ao "cmd:50,pid" | sed 's/./&|/51'

測試輸出:

CMD                                                |  PID
nano jq1 -c                                        | 6041
man ps                                             |13714
pager                                              |13725
ps -ao cmd:50,pid                                  |13950
sed s/./&|/51                                      |13951
python                                             |15345
bash -v                                            |16513
bash +v                                            |16645
top                                                |22426
awk -F| -v cmd=xmlstarlet ed -L -u "//Add/value[%d |31412
sh -c xmlstarlet ed -L -u "//Add/value[1]/@IP" -v  |31413
xmlstarlet ed -L -u //Add/value[1]/@IP -v 1.1.1.1  |31414

引用自:https://unix.stackexchange.com/questions/418451