如何从终端输出中仅检索所需的行?

如何从终端输出中仅检索所需的行?

我只想获得第三行输出df -h

我应该使用什么样的命令?

答案1

这将输出第三行,无论内容是什么。

df -h | sed -n 3p

答案2

df命令实际上接受一个参数来标识您想要的文件系统。因此,例如,您可以使用df /homedf /dev/sda3

如果您打算解析脚本的输出,则需要使用df -P来保证它不会换行。例如,您可以使用df -Ph /home | tail -n +2(但如果您正在解析脚本的输出,请注意文件名中可能包含空格)

答案3

head您可以使用和的组合tail

df -h | head -3 | tail -1

或者

df -h | tail -n +3 | head -1

但请注意,df允许从其本身的选项中过滤输出df,在使用任何外部命令之前,您应该先查看这些选项。

查看man df

答案4

我假设您不一定在寻找第三行,而是寻找提到特定磁盘(例如/dev/sda3)或特定挂载点(例如/home)的行。

因此,您可以按内容过滤输出并仅显示与特定模式匹配或包含关键字的行,而不是仅显示第三行,这是不安全的,因为输出顺序可能会改变并且您可能会得到不同的结果。

您的工具是grep

例如如果您想要有关设备的行/dev/sda3,请输入:

df -h | grep '/dev/sda3'

如果您希望该行将您的主目录作为挂载点,请使用:

df -h | grep '/home'

相关内容