需要从shell脚本的输出中删除多余的空行

时间:2017-08-23 18:05:36

标签: shell unix

我正在尝试编写一个代码,该代码将在目录中打印超过min_size(比如说10G)的所有文件。问题是输出以下代码是所有文件,与min_size无关。我将获得其他细节,如mtime,所有者以及稍后的代码,但这部分本身不能正常工作,这里有什么不对吗?

#!/bin/sh

if (( $# <3 )); then
  echo "$0 dirname min_size count"
  exit 1
else
  dirname="$1";
  min_size="$2";
  count="$3";
  #shift 3
fi

tmpfile=$(mktemp /lawdump/pulkit/files.XXXXXX)
exec 3> "$tmpfile"
find "${dirname}" -type f -print0 2>&1 | grep -v "Permission denied" | xargs -0 -I {} echo "{}" > "$tmpfile"
for i in `cat tmpfile`
do
  x="`du -ah $i | awk '{print $1}' | grep G | sort -nr -k 1`"
  size=$(echo $x | sed 's/[A-Za-z]*//g')
  if [ size > $min_size ];then
  echo $size
fi
done

注意:我知道这可以通过find或du来完成,但我需要编写一个shell脚本来定期发送包含所有详细信息的电子邮件。

0 个答案:

没有答案
相关问题