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

So subtrahieren Sie Zeilen (Zeilen) mit AWK

Sie können dies auch mit awk tun , paste , und bc . Ich finde diesen Ansatz leichter zu merken, die Syntax von awk erfordert immer, dass ich Dinge nachschlage, um sie zu bestätigen.

HINWEIS: Dieser Ansatz hat den Vorteil, dass er mit mehreren Ausgabezeilen fertig werden kann, indem die 2., 3., 4. usw. Zahl von der 1. subtrahiert wird.

$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
    awk '{print $2}' | paste -sd- - | bc
7513404

Einzelheiten

Oben wird awk verwendet , um die Spalte auszuwählen, die die Zahlen enthält, die wir subtrahieren möchten.

$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
    awk '{print $2}'
7969084
408432

Wir verwenden dann paste um diese 2 Werte zu kombinieren und das Minuszeichen dazwischen hinzuzufügen.

$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
    awk '{print $2}'| paste -sd- -
7969084-346660

Wenn wir dies an bc übergeben es führt die Berechnung durch.

$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
    awk '{print $2}'| paste -sd- - | bc
7513404

Die reine awk-Lösung, keine überflüssigen cat- oder grep-Befehle:

awk '/MemTotal/ {TOT=$2} /MemFree/ {FREE=$2} END {printf("%d kB Used\n", TOT-FREE)}' /proc/meminfo

Ich sehe, awk_FTW ist mir zuvorgekommen, aber ich dachte, die Ausgabe zu formatieren könnte nett sein.


Versuchen Sie Folgendes:

grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk 'NR==1{s=$2;next}{s-=$2}END{print s}'

Linux
  1. Wie entferne ich alle kommentierten Zeilen oder Zeilen mit einem bestimmten Muster in vim?

  2. Wie kann man eine Datei ausgeben und Zeilen ignorieren, die mit „?“ beginnen?

  3. Wie zähle ich Zeilen in einem Dokument?

  4. Verwenden von AWK zum Auswählen von Zeilen mit einem bestimmten Wert in einer bestimmten Spalte

  5. Wie ändere ich eine Datei direkt mit awk? (wie bei sed -i)

AWK-Befehl in Linux mit Beispielen

So löschen Sie Zeilen in Vim / Vi

So integrieren Sie ONLYOFFICE 9.6 mit WordPress

So sichern Sie Linux-Server mit SE Linux

Wie kann man die -f-Ausgabe mit Farben nur mit Awk anpassen und den Rest der Ausgabe anzeigen?

So erstellen Sie einen E-Commerce mit Magento