GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cut / Grep und Df -h?

Wie kann ich das „173G“ unter „Verf“ grep oder schneiden?

Ich brauche das für Unix-Scripting in der Schule.

[email protected]:~/$ df -h /dev/sda2
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sda2       293G    121G  173G   42% /media/Windows

Akzeptierte Antwort:

Die bequemste Lösung für solche Aufgaben ist awk :

df -h /dev/sda2 | awk 'NR==2{print$4}'

Oder wenn mehr Partitionen aufgelistet sind, können Sie die rechte Zeile beim Einhängepunkt auswählen:

df -h | awk '$1=="/dev/sda2"{print$4}'

Geht auch einfach mit sed , aber weniger schön, wenn Sie es ein paar Mounts später debuggen müssen:

df -h /dev/sda2 | sed -rn '2s/^((\S+)\s+){4}.*/\2/p'

df -h | sed -rn '/^\/dev\/sda2/s/^((\S+)\s+){4}.*/\2/p'

Das setzt GNU sed voraus . POSIX-kompatible Syntax enthält viele Escapezeichen:

df -h /dev/sda2 | sed -n '2s/^\(\(\S\+\)\s\+\)\{4\}.*/\2/p'

df -h | sed -n '/^\/dev\/sda2/s/^\(\(\S\+\)\s\+\)\{4\}.*/\2/p'

Linux
  1. Regex und grep:Datenfluss und Bausteine

  2. Ausgang begrenzen und Signal 13 vermeiden?

  3. Befehl Grep und Locate verwenden?

  4. 7 Beispiele für Linux-Operatoren Grep OR, Grep AND, Grep NOT

  5. Ausführbare Dateien mit ls und grep finden

Wie man in Vim / Vi kopiert, ausschneidet und einfügt

Wie man nach mehreren Zeichenfolgen und Mustern grep

Bearbeiten von Text mit sed und grep

So führen Sie eine Grep-Suche für alle Dateien und in allen Verzeichnissen durch

Beispiele und Verwendung von Grep mit Berücksichtigung der Groß- und Kleinschreibung

Verwenden von grep und sed zum Suchen und Ersetzen einer Zeichenfolge