GNU/Linux >> Znalost Linux >  >> Linux

Řez / Grep A Df -h?

Jak mohu grep nebo řezat „173G“ pod „Verf“?

Potřebuji to pro skriptování v Unixu ve škole.

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

Přijatá odpověď:

Nejpohodlnějším řešením pro takovou úlohu je awk :

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

Nebo pokud je uvedeno více oddílů, můžete vybrat správný řádek podle bodu připojení:

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

Je to také jednoduché s sed , ale méně pěkné, pokud jej potřebujete odladit o několik připojení později:

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

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

To předpokládá GNU sed . Syntaxe kompatibilní s POSIXem obsahuje mnoho escapování:

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 a grep:Datový tok a stavební bloky

  2. Omezit najít výstup a vyhnout se signálu 13?

  3. Jak najít/grep, co je mezi String1 a String2?

  1. Grep And Tail -f?

  2. 4 Základní a praktické použití příkazu Cut v systému Linux

  3. Hledání spustitelných souborů pomocí ls a grep

  1. Jak spustit Grep s více a vzory?

  2. Použít příkaz Grep a vyhledat?

  3. grep pro termín a vyloučit jiný termín