Shell 脚本来获取介于两年之间的值



我正在使用一个小的 bash 代码,它工作正常,但我只是在寻找是否有更好的方法来形式化下面的 awk 部分,即在第八列上查找 2002 年至 2018 年之间的文件。

$AWK" '$8 >= "2002" && $8<= "2018"' "$FILE

脚本:

#!/bin/bash
FILE="/home/pygo/Cyberark/ftplogs_3"
AWK="/bin/awk"
GREP="/bin/grep"
USERS="`"$AWK" '$8 >= "2002" && $8<= "2018"' $FILE | "$AWK" '{print $3}' | sort -u`"
for user in $USERS;
do
echo "User $user " | tr -d "n";
"$AWK" '$8 >= "2002" && $8<= "2018"' "$FILE" | "$GREP" "$user" | "$AWK" '{ total += $5}; END { print "Total Space consumed: "  total/1024/1024/1024 "GB"}';
done | column -t
echo ""
echo "=============================================================="
"$AWK" '$8 >= "2002" && $8<= "2018"' "$FILE" | "$AWK" '{ total += $5}; END { print "Total Space consumed by All Users: "  total/1024/1024/1024 "GB"}';
echo ""

结果:

User  16871                   Total  Space  consumed:  0.0905161GB
User  253758                  Total  Space  consumed:  0.0750855GB
User  34130                   Total  Space  consumed:  3.52537GB
User  36640                   Total  Space  consumed:  0.55393GB
User  8490                    Total  Space  consumed:  3.70858GB
User  tx-am                   Total  Space  consumed:  0.18992GB
User  tx-ffv                  Total  Space  consumed:  0.183137GB
User  tx-ttv                  Total  Space  consumed:  17.2371GB
User  tx-st                   Total  Space  consumed:  0.201205GB
User  tx-ti                   Total  Space  consumed:  58.9704GB
User  tx-tts                 Total  Space  consumed:  0.0762068GB
------------ snipped output --------------
==============================================================
Total Space consumed by All Users: 255.368GB

编辑:示例数据

-rw-r--r-- 1 34130 ftpsecure 101M Mar 26  2007 /data1/focus-del/files_1
-rw-r--r-- 1 34130 ftpsecure 172M Oct 13  2005 /data1/focus-del/files_2
-rw-r--r-- 1 34130 ftpsecure 213M Nov  8  2005 /data1/focus-del/files_3
-rw-r--r-- 1 34130 ftpsecure 138M Feb 17  2006 /data1/focus-del/files_4
-rw-r--r-- 1 34130 ftpsecure 169M Sep 26  2016 /data1/focus-del/files_5
-rw-r--r-- 1 34130 ftpsecure 214M Nov 15  2018 /data1/focus-del/files_6
-rw-r--r-- 1 34130 ftpsecure 101M Mar 26  2002 /data2/focus-del/files_1
-rw-r--r-- 1 34130 ftpsecure 172M Oct 13  2006 /data2/focus-del/files_2
-rw-r--r-- 1 34130 ftpsecure 213M Nov  8  2008 /data2/focus-del/files_3
-rw-r--r-- 1 34130 ftpsecure 138M Feb 17  2016 /data2/focus-del/files_4
-rw-r--r-- 1 34130 ftpsecure 169M Sep 26  2018 /data2/focus-del/files_5
-rw-r--r-- 1 34130 ftpsecure 214M Nov 15  2018 /data2/focus-del/files_6

预期输出:

$ sh Ftp_cal.sh
User  34130  Total  Space  consumed:  1.87568e-06GB
==============================================================
Total Space consumed by All Users: 1.87568e-06GB
您可以使用

以下awk脚本:

awk '$8 >= 2002 && $8 <= 2018 {
   sum[$3] += $5
}
END {
   for (i in sum) {
      printf "User  %s  Total  Space  consumed: %dn", i, sum[i]
      total += sum[i]
   }
   print "==============="
   print "Total Space consumed by All Users:", total
}' file

User  34130  Total  Space  consumed: 2014
===============
Total Space consumed by All Users: 2014

最新更新