如何格式化 shell 命令的输出

如何格式化 shell 命令的输出

我结合toppidof命令:

top -p $(pidof <process_name>)

如果pidof <process_name>返回一个 idtop命令有效。但如果pidof <process_name>有多个idstop命令就不起作用了。

pidof返回 id 之间有一个空格,例如:123 124 125

如果我能用逗号获取这些 id,则123, 124, 125 top命令将起作用。如何更改 的输出格式pidof

我知道awk用于格式化文本数据。但我找不到如何使用awkshell 命令的结果。

答案1

使用bash

top -p "$(pname="$(pidof <process_name>)"; echo "${pname// /,}")"

使用tr

top -p "$(pidof <process_name> | tr ' ' ',')"

使用sed

top -p "$(pidof <process_name> | sed 's/ /,/g')"

答案2

尝试使用以下方法awk

top -p $(pidof <process_name>|awk '{gsub(/ /, ","); print }')

答案3

你可以试试这个:

top -p "$(pidof <process_name> | awk 'OFS="," { $1 = $1; print; }')"

相关内容