Chcę uzyskać tylko powiedzmy trzeci wiersz df -h
wyniku.
Jakiego rodzaju polecenia powinienem użyć?
command-line
text-processing
emrecnl
źródło
źródło
Odpowiedzi:
Spowoduje to wyświetlenie trzeciego wiersza, niezależnie od zawartości.
źródło
df -h|sed -n 3p
.df
Komenda faktycznie akceptuje argument identyfikujący system plików, który chcesz. Możesz na przykład użyćdf /home
lubdf /dev/sda3
.Jeśli zamierzasz przeanalizować dane wyjściowe skryptu, możesz użyć go,
df -P
aby zagwarantować, że nigdy nie zostanie zawinięty w wiele wierszy. Na przykład możesz użyćdf -Ph /home | tail -n +2
(ale jeśli analizujesz dane wyjściowe skryptu, pamiętaj o możliwości nazw plików ze spacjami)źródło
df /home
zawiera nagłówek. Interpretujesz cel użytkownika. Możesz mieć rację. Możesz się mylić, kto wie?tail -n +2
usuwa nagłówek.Możesz użyć kombinacji
head
itail
:Lub
Zauważ jednak, że
df
pozwala odfiltrować dane wyjściowe z samych opcjidf
, powinieneś najpierw je przejrzeć przed użyciem jakiejkolwiek komendy zewnętrznej.Sprawdzić
man df
.źródło
Awk to narzędzie do przetwarzania tekstu, więc jest odpowiednie do tego zadania
źródło
Zakładam, że niekoniecznie szukasz trzeciej linii, ale linii, która wspomina konkretny dysk (np.
/dev/sda3
) Lub określony punkt montowania (np/home
.).Dlatego zamiast wyświetlać tylko trzeci wiersz, co jest niepewne, ponieważ kolejność wyjściowa może się zmienić i może pojawić się inny wynik, możesz filtrować dane wyjściowe według zawartości i wyświetlać tylko linie pasujące do określonego wzorca lub zawierające słowo kluczowe.
Twoje narzędzie do tego jest
grep
.Na przykład, jeśli chcesz wiersz o urządzeniu
/dev/sda3
, wpisz:Jeśli chcesz, aby wiersz wskazujący twój katalog domowy był punktem montowania, użyj:
źródło
df -h /dev/sda3
lubdf -h /home
(ten ostatni działa, nawet jeśli nie jest to punkt montowania).Możesz również użyć
perl
:Jest
$.
to bieżący numer wiersza, więc możesz wydrukować N-ty wiersz za pomocąperl -ne 'print if $.==N'
.źródło
Moim pierwszym pomysłem będzie konstrukcja głowy-ogona.
Przykład:
head -3
powoduje, że wyjście zatrzymuje się po trzech wierszach itail -1
wyświetla tylko ostatni wiersz.Alternatywnie, jeśli wiesz, jak będzie wyglądał wynik, możesz również użyć
grep
do znalezienia wierszy zawierających określony ciąg znaków.źródło