GNU/Linux >> Tutoriels Linux >  >> Linux

Comment soustraire des lignes (lignes) avec AWK

Vous pouvez également le faire en utilisant awk , paste , et bc . Je trouve cette approche plus facile à retenir, la syntaxe de awk me demande toujours de vérifier les choses pour confirmer.

REMARQUE : Cette approche a l'avantage de pouvoir gérer plusieurs lignes de sortie, en soustrayant les 2e, 3e, 4e, etc. nombres du 1er.

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

Détails

Ce qui précède utilise awk pour sélectionner la colonne qui contient les nombres que nous voulons soustraire.

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

Nous utilisons alors paste pour combiner ces 2 valeurs valeurs et ajouter le signe moins entre elles.

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

Lorsque nous passons ceci à bc il effectue le calcul.

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

La solution purement awk, pas de commandes cat ou grep redondantes :

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

Je vois que awk_FTW m'a devancé mais je pensais que formater la sortie pourrait être sympa.


Essayez ceci :

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

Linux
  1. Comment compter les lignes dans un document ?

  2. sed joindre des lignes ensemble

  3. Comment afficher uniquement des lignes différentes à l'aide de diff (bash)

  4. Comment remplir un fichier avec FF en utilisant dd ?

  5. Comment tronquer un fichier par lignes ?

Commande AWK sous Linux avec des exemples

Comment supprimer des lignes dans Vim / Vi

Comment intégrer ONLYOFFICE 9.6 à WordPress

Comment sécuriser les serveurs Linux avec SE Linux

Comment afficher la sortie Tail -f avec des couleurs en utilisant uniquement Awk et afficher le reste de la sortie?

Comment créer un e-commerce avec Magento