shell中與運算 cut切分行 if while綜合在一起的一個例子
阿新 • • 發佈:2018-12-19
前言:
公司要統計 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 $num1if [ $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