Можно использовать awk как это:
grep "pattern" file.txt | awk '{printf "%s ", $3}'
В зависимости от того, с чем Вы делаете grep
, но необходимо рассмотреть использование awk
для того, чтобы схватить себя:
awk '/pattern/{printf "%s ", $3}' file.txt
Иначе путем использования в своих интересах слова-spliting удара:
echo $(awk '/pattern/{print $3}' file.txt)
Редактирование: у Меня есть более забавный способ присоединиться к значениям:
awk '/pattern/{print $3}' file.txt | paste -sd " " -
14: время пользователя (в количестве тиков часов)
17: время ожидания детей
(там все нити данного процесса имеют одинаковые значения)
Они не сообщаются непосредственно [1181801]ps[1181802].
ps[1181804] сообщает 14 + 15 с [1181805]ps -о времени [1181806] и [1181807]14 + 15 + 16 + 17 [1181808] с [1181809]ps -кумулятивным -о bsdtime[1181810].
Остерегайтесь, что второе поле в [1181811]/proc/$pid/stat[1181812] может содержать пробелы или символы новой строки, поэтому вы не сможете разобрать его с помощью awk's [1181813]$1[1181814], [1181815]$2[1181816]....
Вы можете использовать [1181817]perl[1181818], например:
Процесс может извлекать свое время с помощью [1181819]getrusage(RUSAGE_SELF)[1181820] и [1181821]getrusage(RUSAGE_CHILDREN)[1181822].Также существует [1181823]times[1181824] системный вызов, который извлекает ту же самую информацию. Для этого в оболочках POSIX есть [1181825]times[1181826]. Некоторые оболочки также предоставляют эту информацию со временем [1181827] [1181828] (без аргументов).