1. 程式人生 > >shell中與運算 cut切分行 if while綜合在一起的一個例子

shell中與運算 cut切分行 if while綜合在一起的一個例子

 

前言:

公司要統計 treasury庫hive表磁碟空間,寫了個指令碼,如下:

 

查詢hive倉庫表佔用hdfs檔案大小:

hadoop fs -du -h  /user/hive/warehouse/treasury.db  > treasury.txt

 

指令碼:

 

#!/bin/sh
#
while read line
do
size=$1
num=` echo $line | cut -d " " -f 1`
unit=` echo $line | cut -d " " -f 2`
num1=` echo $num | cut -d "." -f 1`
#echo $num1
 
if [ $unit == "G" ]; then if [ $num1 -gt $size ]; then #echo $unit #echo $num1 echo $line fi fi done < treasury.txt

 

 

 

呼叫命令:

sh filter2.sh  100   表示只過濾大於100G的表呼叫命令:

 

 

其中上面兩個if判斷 指令碼可以修改成:

if  [[ $unit == "G" ]] && [[ $num1 > 5 ]] ; then