bash - 如何将 `rm` 文件作为 awk 操作?

标签 bash awk

这一行:

sudo df /tmp \
  | grep '/tmp' \
  | expand - \
  | cut -d " " -f 12 \
  | sed 's/%//' \
  | awk '{ if ($1<50)
             $("sudo rm -rf /path/to/trash/files/*")
         }'

似乎没有效果,而这个:

sudo df /tmp \
  | grep '/tmp' \
  | expand - \
  | cut -d " " -f 12 \
  | sed 's/%//' \
  | awk '{ if ($1<50)
             print $1
         }'

打印用于 tmp 的磁盘百分比。

(最终目标是将比较翻转到 ($1>50) ,但为了测试我正在尝试 < 。)

最佳答案

使用 awk 在管道中实际上不需要那么多命令。

您可以使用:

df /tmp | awk 'NR>1 && $5+0 > 50 {system ("date")}'

此处将 date 命令更改为您需要在那里运行的其他命令。

关于bash - 如何将 `rm` 文件作为 awk 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60570091/

相关文章:

bash - curl -F 换行符未正确解释

linux - 重定向所有命令的 bash 输出和错误

bash - 解析 VCF 文件的 INFO 字段

linux - 搜索文件中的重复行,计算它以及哪个位置(行号)而不对其进行排序?

shell - 在awk中删除数组的下标/索引

bash - Jenkins 可以获取关联用户的 .bashrc 吗?

bash - set -e 和后台进程

linux - 停止无限循环并在循环结束时中断

unix - 删除 FASTA 文件中的换行符

linux - 在 linux/awk/bash 中仅将行与数值相乘