Isso produzirá a terceira linha, independentemente do conteúdo.
df -h | sed -n 3p
Quero receber apenas a terceira linha de df -h output.
Que tipo de comando devo usar?
Isso produzirá a terceira linha, independentemente do conteúdo.
df -h | sed -n 3p
O comando df na verdade aceita um argumento identificando o sistema de arquivos desejado. Então você poderia usar, por exemplo, df /home ou df /dev/sda3 .
Se você pretende analisar a saída de um script, convém usar df -P para garantir que ele nunca se encadeie em várias linhas. Então, por exemplo, você poderia usar df -Ph /home | tail -n +2 (mas se você está analisando a saída de um script, esteja ciente da possibilidade de nomes de arquivos com espaços neles)
Você pode usar uma combinação de head e tail :
df -h | head -3 | tail -1
Ou
df -h | tail -n +3 | head -1
Mas observe que, df permite filtrar a saída das opções de df , você deve verificar essas opções antes de usar qualquer comando externo.
Verifique man df .
Awk é uma ferramenta de processamento de texto, por isso é apropriado para esta tarefa
df -h | awk 'NR == 3'
Suponho que você não esteja necessariamente procurando pela terceira linha, mas pela linha que menciona um disco específico (por exemplo, /dev/sda3 ) ou um ponto de montagem específico (por exemplo, /home ).
Então, em vez de apenas exibir a terceira linha, que é insegura porque a ordem de saída pode mudar e você pode obter um resultado diferente, é possível filtrar a saída pelo conteúdo e mostrar apenas as linhas que correspondem a um padrão específico ou que contêm uma palavra-chave .
Sua ferramenta para isso é grep .
Por exemplo, se você quiser a linha sobre o dispositivo /dev/sda3 , digite:
df -h | grep '/dev/sda3'
Se você quiser que a linha mencionando seu diretório pessoal como ponto de montagem, use:
df -h | grep '/home'
Você também pode usar perl :
df -h | perl -ne 'print if $.==3'
O $. é o número da linha atual, então você pode imprimir a enésima linha com perl -ne 'print if $.==N' .
Minha primeira ideia seria uma construção de cabeça-cauda.
Exemplo:
df -h | head -3 | tail -1
head -3 faz a saída parar após três linhas e tail -1 produzirá apenas a última linha.
Como alternativa, se você souber como será a aparência, você também poderá usar grep para localizar linhas que contenham uma determinada string.