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.
Bash | Pobieranie z pliku
- Rejestracja: dni
- Ostatnio: dni
- Postów: 9
0
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1039
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
- Rejestracja: dni
- Ostatnio: dni
2
> sed -n '/^PPid:/{s/^[^0-9]*//p;q}' /proc/31435/status
22587
> awk '$1 == "PPid:" { print $2; exit }' /proc/31435/status
22587
>