Dzień dobry, mam problem otóz muszę z pliku /proc/pid/status pobrać 7 linijke która zawiera numer ppid procesu, jak chce to zrobić przy uzyciu seda to pobiera mi cała linie np. PPID: 23
a chce aby tylko mi pobierało sam numer. Dziękuje za wszelką pomoc.
0
2
awk -F "\t" '/^PPid:/ { print $(NF) }' /proc/<pid>/status
-F
ustawia separator na tab
'/^PPid:/
sprawia, że to co znajduje się w bloku wykona się tylko gdy wyrażenie regularne zostało dopasowane
NF
to liczba pól liczona od 1 w rozbitej linijce wejścia, a $(NF)
, to zawartość pola pod indeksem NF
Jeżeli nie chcesz wyrażenia regularnego, to możesz bezpośredni wypisać 7 linijkę:
awk -F "\t" 'NR == 7 { print $(NF) }' /proc/<pid>/status
2
> sed -n '/^PPid:/{s/^[^0-9]*//p;q}' /proc/31435/status
22587
> awk '$1 == "PPid:" { print $2; exit }' /proc/31435/status
22587
>