Ich möchte nur die dritte df -h
Ausgabezeile bekommen.
Welche Art von Befehl soll ich verwenden?
command-line
text-processing
emrecnl
quelle
quelle
Antworten:
Dies gibt die 3. Zeile unabhängig vom Inhalt aus.
quelle
df -h|sed -n 3p
.Der
df
Befehl akzeptiert tatsächlich ein Argument, das das gewünschte Dateisystem angibt. So könnten Sie zum Beispieldf /home
oder verwendendf /dev/sda3
.Wenn Sie die Ausgabe für ein Skript analysieren möchten, sollten Sie
df -P
sicherstellen, dass es niemals in mehrere Zeilen umgebrochen wird. Sie könnten zum Beispiel Folgendes verwendendf -Ph /home | tail -n +2
(aber wenn Sie die Ausgabe für ein Skript analysieren, müssen Sie sich der Möglichkeit bewusst sein, dass Dateinamen Leerzeichen enthalten).quelle
df /home
bietet einen Header. Sie interpretieren den Zweck des Benutzers. Du könntest Recht haben. Sie können sich irren, wer weiß?tail -n +2
entfernt den Header.Sie können eine Kombination aus
head
und verwendentail
:Oder
Beachten Sie jedoch, dass Sie sich diese zuerst ansehen sollten, bevor Sie einen externen Befehl verwenden
df
, um die Ausgabe aus den eigenen Optionendf
herauszufiltern.Überprüfen Sie
man df
.quelle
Awk ist ein Textverarbeitungsprogramm, das für diese Aufgabe geeignet ist
quelle
Ich gehe davon aus, dass Sie nicht unbedingt nach der dritten Zeile suchen, sondern nach der Zeile, in der entweder ein bestimmter Datenträger (z. B.
/dev/sda3
) oder ein bestimmter Einhängepunkt (z/home
. B. ) angegeben ist.Anstatt nur die dritte Zeile anzuzeigen, die unsicher ist, weil sich die Ausgabereihenfolge möglicherweise ändert und Sie ein anderes Ergebnis erhalten, können Sie die Ausgabe nach Inhalt filtern und nur die Zeilen anzeigen, die einem bestimmten Muster entsprechen oder ein Schlüsselwort enthalten.
Ihr Werkzeug dafür ist
grep
.Wenn Sie beispielsweise die Zeile über das Gerät anzeigen möchten
/dev/sda3
, geben Sie Folgendes ein:Wenn Sie möchten, dass die Zeile Ihr Home-Verzeichnis als Mount-Punkt enthält, verwenden Sie:
quelle
df -h /dev/sda3
oderdf -h /home
(Letzteres funktioniert auch, wenn es sich nicht um einen Einhängepunkt handelt).Sie könnten auch verwenden
perl
:Dies
$.
ist die aktuelle Zeilennummer, mit der Sie die n-te Zeile drucken könnenperl -ne 'print if $.==N'
.quelle
Meine erste Idee wäre ein Kopf-Schwanz-Konstrukt.
Beispiel:
head -3
bewirkt, dass die Ausgabe nach drei Zeilen gestoppt wird undtail -1
nur die letzte Zeile ausgegeben wird.Wenn Sie wissen, wie die Ausgabe aussehen wird, können Sie alternativ auch
grep
nach Zeilen suchen, die eine bestimmte Zeichenfolge enthalten.quelle