How do I retrieve only the needed line from terminal output?
Solution 1:
This will output the 3rd line, regardless of content.
df -h | sed -n 3p
Solution 2:
The df
command actually accepts an argument identifying the filesystem you want. So you could use, for example, df /home
or df /dev/sda3
.
If you intend to parse the output for a script, you'll want to use df -P
to guarantee it never wraps to multiple lines. So, for example, you could use df -Ph /home | tail -n +2
(but if you're parsing output for a script, be aware of the possibility of filenames with spaces in them)
Solution 3:
You can use a combination of head
and tail
:
df -h | head -3 | tail -1
Or
df -h | tail -n +3 | head -1
But note that, df
allows to filter the output from the options of df
itself, you should look at those first before using any external command.
Check man df
.
Solution 4:
Awk is text processing tool, so it's appropriate for this task
df -h | awk 'NR == 3'