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.