Kategorier
Programmering

Snyggare utskrift från df med awk

Jag ville få en snyggare utskrift av linux kommandot df som normalt skriver ut information på det här viset

Filsystem            Storlek Anvnt Tillg Anv% Monterat på
/dev/sda5             179G   12G  158G   7% /
tmpfs                1007M     0 1007M   0% /lib/init/rw

Den information jag ville få ut var bara total storleken och hur mycket ledigt utrymme som finns kvar på varje disk. Listningen skulle bara innehålla ext3 filsystem och jag ville inte se några kolumnrubriker.

För att bara få ut ext3 filsystem använde jag mig av -t flaggan följt av ext3 på df kommandot. -h flaggan skriver ut storleken i Megabyte och Gigabyte. För att undvika problem med olika tabb mellanrummen på df kommandot mellan mina olika distribution använde jag -P som betyder använd POSIX-format.

Nu hade jag lyckats att bara visa de filsystem jag ville visa dock visas fortfarande kolumnrubrikerna. Min lösning på problemet var awk Det mitt lilla bash script gör här under är att köra df kommandot och skicka output:en till awk som i sin tur bara skriver ut något om radnumret är större än rad 1. Därefter loopar awk över alla rader i kommandots input och skriver ut informationen i kolumn 4 och 2 och infogar lite text där i mellan.

#!/bin/sh

df -Pht ext3 | awk 'IF NR > 1 {print $4" av "$2"<br />"}'

Till slut ser utskriften ut så här

814G av 973G
59M av 99M

Av Peter Lindblom