Вырежьте второе поле, разделенное пробелами

Я хочу получить второй столбец из 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

3-й столбец, потому что в начале каждой строки есть пробел. Мы можем удалить это тоже:

ps -e | head -5 | tr -s ' ' | sed 's/ //' | cut -d ' ' -f2
Другие вопросы по тегам