问题描述
我只想得到 df -h
输出的第三行。
我应该使用什么样的命令?
最佳办法
这将输出第三行,无论内容如何。
df -h | sed -n 3p
次佳办法
df
命令实际上接受一个标识所需文件系统的参数。因此,您可以使用 df /home
或 df /dev/sda3
等。
如果您打算解析脚本的输出,则需要使用 df -P
来保证它永远不会换行为多行。因此,例如,您可以使用 df -Ph /home | tail -n +2
(但如果您正在解析脚本的输出,请注意文件名中可能包含空格)
第三种办法
您可以使用 head
和 tail
的组合:
df -h | head -3 | tail -1
或者
df -h | tail -n +3 | head -1
但请注意,df
允许过滤 df
本身选项的输出,您应该在使用任何外部命令之前先查看这些选项。
检查 man df
。
第四种办法
Awk 是文本处理工具,因此适合此任务
df -h | awk 'NR == 3'
第五种办法
我假设您不一定要寻找第三行,而是寻找提到特定磁盘(例如 /dev/sda3
)或特定安装点(例如 /home
)的行。
因此,您可以按内容过滤输出并仅显示与特定模式匹配或包含关键字的行,而不是仅显示第三行(这是不安全的,因为输出顺序可能会更改并且您可能会得到不同的结果)。
您的工具是 grep
。
例如,如果您想要有关设备 /dev/sda3
的行,请键入:
df -h | grep '/dev/sda3'
如果您希望该行提及您的主目录作为安装点,请使用:
df -h | grep '/home'
第六种办法
您还可以使用 perl
:
df -h | perl -ne 'print if $.==3'
$.
是当前行号,因此您可以使用 perl -ne 'print if $.==N'
打印第 N 行。