Je veux obtenir seulement, disons, la troisième ligne du résultat df -h
.
Quel type de commande devrais-je utiliser?
Cela affichera la 3ème ligne, quel que soit le contenu.
df -h | sed -n 3p
La commande df
accepte en fait un argument identifiant le système de fichiers souhaité. Vous pouvez donc utiliser, par exemple, df /home
ou df /dev/sda3
.
Si vous avez l'intention d'analyser la sortie d'un script, vous devrez utiliser df -P
pour garantir qu'elle ne sera jamais encapsulée sur plusieurs lignes. Ainsi, par exemple, vous pouvez utiliser df -Ph /home | tail -n +2
(mais si vous analysez la sortie d'un script, soyez conscient de la possibilité de noms de fichiers contenant des espaces)
Vous pouvez utiliser une combinaison de head
et tail
:
df -h | head -3 | tail -1
Ou
df -h | tail -n +3 | head -1
Cependant, notez que df
permet de filtrer la sortie à partir des options de df
, vous devriez les examiner avant d’utiliser une commande externe.
Vérifiez man df
.
Awk est un outil de traitement de texte, il convient donc à cette tâche.
df -h | awk 'NR == 3'
Je suppose que vous ne recherchez pas nécessairement la troisième ligne, mais la ligne qui mentionne un disque spécifique (par exemple /dev/sda3
) ou un point de montage spécifique (par exemple /home
).
Par conséquent, au lieu d'afficher la troisième ligne, ce qui n'est pas sûr, car l'ordre de sortie risque de changer et d'obtenir un résultat différent, vous pouvez filtrer la sortie par contenu et afficher uniquement les lignes correspondant à un modèle spécifique ou contenant un mot clé.
Votre outil pour cela est grep
.
Par exemple, si vous voulez la ligne à propos du périphérique /dev/sda3
, vous tapez:
df -h | grep '/dev/sda3'
Si vous voulez que la ligne mentionnant votre répertoire personnel en tant que point de montage, utilisez:
df -h | grep '/home'
Vous pouvez également utiliser Perl
:
df -h | Perl -ne 'print if $.==3'
$.
est le numéro de ligne actuel, vous pouvez donc imprimer la Nième ligne avec Perl -ne 'print if $.==N'
.
Ma première idée serait une construction front-tail.
Exemple:
df -h | head -3 | tail -1
head -3
provoque l'arrêt de la sortie après trois lignes et tail -1
n'affiche que la dernière ligne.
Sinon, si vous savez à quoi ressemblera la sortie, vous pouvez également utiliser grep
pour rechercher les lignes contenant une certaine chaîne.