剪切空格分隔的第二个字段

剪切空格分隔的第二个字段

我想从ps结果中检索第二列:

test@pc:~$ ps -e | head -5 | cut -d '' -f1
  PID TTY          TIME CMD
    1 ?        00:00:03 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 rcu_gp
    4 ?        00:00:00 rcu_par_gp

它不起作用,我了解到它可以用一种复杂的方法来解决:

test@pc:~$ ps -e | head -5 | gawk '{print $2}'
TTY
?
?
?
?

如何使用通用工具来解决问题cut

答案1

首先,我们使用以下方法替换每个重复空格序列,tr -s ' '然后抓取第 3 列:

ps -e | head -5 | tr -s ' ' | cut -d ' ' -f3

第三列,因为每行开头都有一个空格。我们也可以删除它:

ps -e | head -5 | tr -s ' ' | sed 's/ //' | cut -d ' ' -f2

相关内容