当我跑
df -hl | grep '/dev/disk1' | awk '{sub(/%/, \"\");print $5}'
我收到以下错误:
awk: syntax error at source line 1
context is
{sub(/%/, >>> \ <<< "\");}
awk: illegal statement at source line 1
我似乎在 awk sub 上找不到任何文档。
df -hl | grep '/dev/disk1'
返回
/dev/disk1 112Gi 94Gi 18Gi 85% 24672655 4649071 84% /
据我了解,它应该返回已用磁盘空间的百分比。
您只需要删除这对反斜杠:
awk
sub
函数有据可查,可以将作为第一个参数传递的模式的第一次出现替换为作为第二个参数传递的字符串。这里的模式是百分号,替换字符串是一个空字符串。正如您在问题中所写的那样,第二个参数是无效字符串,因此会
awk
抱怨并退出。更正的awk
语句是删除%
其输入中的出现并显示第五个字段。请注意,
grep
这里的命令是多余的,因为awk
能够单独进行过滤,所以命令可以简化为: