仅 Grep 一个单词而不是整个字符串

仅 Grep 一个单词而不是整个字符串

我正在编写一个简单的脚本来监视 / 分区中的磁盘空间,并且我只想在输出中 grep 数字。

tabbi@tabbi:~/scripts$ df -h / 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       234G  7,6G  214G   4% /

假设我想从“使用”列中删除 %(或在所有地方删除它);当我使用时df -h / | grep -v '%'什么也没有打印。

如何从输出中排除 % 符号?

答案1

grep -v删除任何线匹配给定的字符串;因此,在您的情况下,任何包含“%”的行都会被完整删除。

要仅删除字符,请使用tr:

df -h / | tr -d %

答案2

您可以获取 / 目录的使用情况,不带“%”,带awk.基本上,awk在以下命令中:

  • 选择输出的最后一行,以说明 df 标头 - END;
  • 删除“%”;
  • 输出第五字段(打印 5 美元)。

    df -h / | awk '  END { gsub("%",""); print $5 } '
    

运行它:

$ df -h / | awk '  END { gsub("%",""); print $5 } '
4

或者获取所有数字:

$ df -h / | awk '  END { gsub("%",""); gsub("G",""); print $2" "$3" "$4" "$5 } '
234 7,6 214 4

相关内容