如何只获取字符串的特定 "row"?
How to get only a specific "row" of a string?
我正在尝试获取用户特定进程的最低PID。在我的例子中,用户被命名为 content
,特定进程被命名为 gnome-terminal-server
。我正在使用以下命令来获得所需的输出。
command
ps -eF|grep -F 'gnome-terminal-server'|grep -E '^content'|head -n1
output
content 1758 1659 0 116290 39408 0 09:07 ? 00:00:01 /usr/libexec/gnome-terminal-server
但我未能相应地格式化输出。我只想获得 PID 号。 1758
,以便我可以将其分配给一个变量,例如 TERMINAL_PID=1758
,以便进一步处理。
那么如何格式化 bash/sh 中的 output
以仅获取第二行 (1758
)?
为了找到一行,你使用grep
,这是可以的。
为了显示该行的一部分,您可以使用 cut
或 awk
。如果您选择 awk
,您可以将此添加到您的命令中:
| awk '{print }'
(显示第二列)
因此,您的命令变为:
ps -eF | grep -F 'gnome-terminal-server' | grep -E '^content' | head -n1 | awk '{print }'
我正在尝试获取用户特定进程的最低PID。在我的例子中,用户被命名为 content
,特定进程被命名为 gnome-terminal-server
。我正在使用以下命令来获得所需的输出。
command
ps -eF|grep -F 'gnome-terminal-server'|grep -E '^content'|head -n1
output
content 1758 1659 0 116290 39408 0 09:07 ? 00:00:01 /usr/libexec/gnome-terminal-server
但我未能相应地格式化输出。我只想获得 PID 号。 1758
,以便我可以将其分配给一个变量,例如 TERMINAL_PID=1758
,以便进一步处理。
那么如何格式化 bash/sh 中的 output
以仅获取第二行 (1758
)?
为了找到一行,你使用grep
,这是可以的。
为了显示该行的一部分,您可以使用 cut
或 awk
。如果您选择 awk
,您可以将此添加到您的命令中:
| awk '{print }'
(显示第二列)
因此,您的命令变为:
ps -eF | grep -F 'gnome-terminal-server' | grep -E '^content' | head -n1 | awk '{print }'