如何只获取字符串的特定 "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,这是可以的。

为了显示该行的一部分,您可以使用 cutawk。如果您选择 awk,您可以将此添加到您的命令中:

| awk '{print }'

(显示第二列)

因此,您的命令变为:

ps -eF | grep -F 'gnome-terminal-server' | grep -E '^content' | head -n1 | awk '{print }'