So wählen Sie eine bestimmte Spalte in der linux-Befehl df eingeben
Ich versuche Informationen zu sammeln, die Menge an Speicherplatz auf verschiedenen Servern. Also wenn ich ausführen df -k
bekomme ich als Ausgabe:
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/ad1s1f 125925198 2568970 113282214 2% /builds
Und manchmal ist die Ausgabe kommt :
Filesystem 1K-blocks Used Available Use% Mounted on
10.102.1.123:/storage/disk1/build
10735331328 10597534720 137796608 99% /buildbackup
Nun möchte ich zum abrufen von Daten auf den verfügbaren Speicherplatz. Also lassen Sie mich wissen, wie abrufen von Daten aus einer bestimmten Spalte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie zum Beispiel sagen:
Oder kommentiert von Tim Bunce, die Sie verwenden können
--direct
um zu verhindern, dass die lange Dateisystem-name machen die Linie in zwei Teile gespalten. Dieses zeigt das Dateisystem, wie-
.Vom
man df
:Test
# df -k --output=source,Avail df: illegal option -- - usage: df [-b | -g | -H | -h | -k | -m | -P] [-aciln] [-t type] [file | filesystem ...]
avail
(Kleinbuchstaben). Wenn das war ein Typ und das problem weiterhin besteht: aus welchem system arbeitest du?avail
stattAvail
?# df --output=source,avail df: illegal option -- - usage: df [-b | -g | -H | -h | -k | -m | -P] [-aciln] [-t type] [file | filesystem ...]
df --version
). Geben Sie einen Versuch mit--direct
um eine kürzere Ausgabe.df --
option ist illegal auf diesem system (FreeBSD 6.2), denke ich. Gibt es eine andere Möglichkeit zum auswählen einer Spalte basierend auf der Spalte name?man df
, das ist, wie ich fand, die--output
option.--
option, wenn ichman df
auf meinem systemssh
verschiedenen Versionen von FreeBSD6.2 und Windows - system die Ausgabe vondf
Befehl ist unterschiedlich. Der beste Weg, um das gewünschte Ergebnis zu erhalten, indem Sie das abrufen der Daten mit Hilfe der Spalte name. Aber da es aussieht wie nicht möglich auf dem ich FreeBSD benutze. Werde ich haben, um code zu analysieren und Holen Sie sich die gewünschte Ausgabe. Vielen Dank für Eure Hilfeman df
im Free BSD (freebsd.org/cgi/man.cgi?df%281%29) sehe ich Sie verwenden kanndf -m
zum Beispiel, um die Ausgabe in MB. Auf diese Weise werden die zahlen kleiner werden, und Sie können nicht eine mehrzeilige Ausgabe.fedorqui die Lösung ist sauberer, funktioniert aber nur für df
Einen allgemeineren Ansatz zum Einsturz, mehrere Leerzeichen zu einem einzigen Leerzeichen mit
sed 's/\+//g'
odertr -s ' '
, dann verwenden Siecut
mit Leerzeichen als Trennzeichen:cut -d" " -f 4
Also der Befehl ist:
Welche Ergebnisse in so etwas wie dieses:
Dem gleichen Ansatz arbeiten, mit anderen Befehlen, die Ausgabe von Daten auf Spalten.
Zum Beispiel
ls -l | tr -s ' ' | cut -d" " -f 6,7,8
gedruckt wird die Zeit Spalten aus
ls -l
:df
denn die Frage ist in Bezug aufdf
🙂 beachten Sie Auch, können Sie squeeze-Räume mittr -s ' '
df
ist, dass manchmal bekommt so ein großes Dateisystem zu drucken, die es in zwei verschiedenen Linien, und dies wäre schwierig zu handhaben mitsed
.df -k | sed 's/ \+/ /g' | cut -d" " -f 4
Die Ausgabe ist leer.# df -k . | sed 's/ \+/ /g' | cut -d" " -f4 # df -k . | sed 's/ \+/ /g'