有时候我们希望使用awk来处理shell命令的输出结果并对其进行格式化。但是,在使用awk处理df命令的输出时,可能会发现awk输出的结果与想要的不一样。
比如,如果我们希望df输出挂载点的名字和使用百分比,我们可能会这样做:
df -h | awk '{print $1 "\t" $5}'
但是,这样可能会得到不正确的输出。这是因为df输出中的空格数不一定相同,导致awk无法正确识别字段。
为了解决这个问题,我们可以通过指定列分隔符的方式来使awk能够正确地识别字段。例如,我们可以使用以下命令:
df -h | awk -F" +" '{print $1 "\t" $5}'
这个命令中,-F参数指定了正则表达式" +",表示一个或多个空格字符作为分隔符。这样,awk就能够正确地解析df的输出,并输出我们所需要的挂载点和使用百分比。