当我跑步
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上find任何文档。
df -hl | grep '/dev/disk1'
回报
/dev/disk1 112Gi 94Gi 18Gi 85% 24672655 4649071 84% /
据我所知,它应该返回使用的磁盘空间的百分比。
你只需要删除一对反斜杠:
df -hl | grep '/dev/disk1' | awk '{sub(/%/, "");print $5}'
awk sub被很好地logging,以取代作为第二个parameter passing的string作为第一个parameter passing的模式的第一次出现。
这里的模式是百分号,replacestring是一个空string。 正如它写在你的问题,第二个参数是一个无效的string,所以awk抱怨和退出。 已更正的awk语句将删除出现在其input中的%并显示第五个字段。
请注意, grep命令在这里是冗余的,因为awk可以单独进行过滤,所以命令可以简化为:
df -hl | awk '/\/dev\/disk1/ {sub(/%/, "");print $5}'