Je veux obtenir seulement disons la troisième ligne de df -h
sortie.
Quel type de commande dois-je utiliser?
command-line
text-processing
emrecnl
la source
la source
Réponses:
Cela produira la 3e ligne, quel que soit le contenu.
la source
df -h|sed -n 3p
.La
df
commande accepte en fait un argument identifiant le système de fichiers souhaité. Vous pouvez donc utiliser, par exemple,df /home
oudf /dev/sda3
.Si vous avez l'intention d'analyser la sortie d'un script, vous voudrez l'utiliser
df -P
pour garantir qu'il ne passe jamais sur plusieurs lignes. Ainsi, par exemple, vous pouvez utiliserdf -Ph /home | tail -n +2
(mais si vous analysez la sortie d'un script, soyez conscient de la possibilité de noms de fichiers avec des espaces)la source
df /home
fournisse un en-tête. Vous interprétez le but de l'utilisateur. Vous pouvez avoir raison. Vous avez peut-être tort, qui sait?tail -n +2
supprime l'en-tête.Vous pouvez utiliser une combinaison de
head
ettail
:Ou
Mais notez que,
df
permet de filtrer la sortie des options dedf
lui-même, vous devez d'abord les regarder avant d'utiliser une commande externe.Vérifiez
man df
.la source
Awk est un outil de traitement de texte, il convient donc à cette tâche
la source
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
).Ainsi, au lieu d'afficher simplement la troisième ligne, ce qui n'est pas sûr car l'ordre de sortie peut changer et vous pouvez obtenir un résultat différent, vous pouvez filtrer la sortie par contenu et afficher uniquement les lignes qui correspondent à un modèle spécifique ou contiennent un mot-clé.
Votre outil pour cela est
grep
.Par exemple, si vous voulez la ligne sur l'appareil
/dev/sda3
, vous tapez:Si vous voulez que la ligne mentionne votre répertoire personnel comme point de montage, utilisez:
la source
df -h /dev/sda3
oudf -h /home
(ce dernier fonctionne même s'il ne s'agit pas d'un point de montage).Vous pouvez également utiliser
perl
:Le
$.
est le numéro de ligne actuel, vous pouvez donc imprimer la Nième ligne avecperl -ne 'print if $.==N'
.la source
Ma première idée serait une construction tête-bêche.
Exemple:
head -3
entraîne l'arrêt de la sortie après trois lignes ettail -1
ne produit que la dernière ligne.Alternativement, si vous savez à quoi ressemblera la sortie, vous pouvez également utiliser
grep
pour trouver des lignes contenant une certaine chaîne.la source