gpt4 book ai didi

linux - 尝试加入 ps 和 pwdx linux 命令的输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:34 27 4
gpt4 key购买 nike

我正在尝试加入 ps 和 pwdx 命令的输出。谁能指出我命令中的错误。

ps -eo %p,%c,%u,%a --no-headers | awk -F',' '{ for(i=1;i<=NF;i++) {printf $i", 
"} ; printf pwdx $1; printf "\n" }'

我希望每行的最后一列是进程目录。但是它只是显示$1的值而不是命令输出pwdx $1

这是我的输出示例(1 行):

163957, processA , userA , /bin/processA -args, 163957

我以为

163957, processA , userA , /bin/processA -args, /app/processA

谁能指出我可能遗漏了什么

最佳答案

试试这个:

ps -eo %p,%c,%u,%a --no-headers | awk -F',' '{ printf "%s,", $0; "pwdx " $1 | getline; print gensub("^[0-9]*: *","","1",$0);}'

解释:

awk '{print pwdx $1}' 将连接 awk 变量 pwdx(为空)和 $1 (pid)。因此,实际上,您在输出中只获得了 pid

为了运行一个命令并得到它的输出,你需要使用这个awk结构:

awk '{"some command" | getline; do_something_with $0}'
# After getline, the output will be present in $0.

#For multiline output, use this:
awk '{while ("some command" | getline){do_something_with $0}}'
# Each individual line will be present in subsequent run of the while loop.

关于linux - 尝试加入 ps 和 pwdx linux 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com