2014年8月31日 星期日

Shell 常用指令

取得目前主機時間並輸出


    #! /usr/sh
     time= $(date " +%Y/%m%d %H:%M:%S")  # to obtain the system time

     echo ${time} 


在資料夾中依filelist 的順序將其命名為filename
 for filename in filelist ; do
       statements
done
Example:

for wrfbdy in `ls wrfbdy* |sort `; do    #1
    echo $wrfbdy                                #2
    dd=`echo $wrfbdy |cut -d '_' -f 2`   #3
    hh=`echo $wrfbdy |cut -d '_' -f 3`
    echo $dd ' ' $hh
done 
#1:filelist=  `ls wrfbdy* |sort`  ,
        將資料夾中所有以wrfbdy為檔頭的檔案依序排好( | sort ),
        並且在迴圈中,以"wrfbdy"稱呼該檔名。 (迴圈次數由檔案數目決定)
#2:回傳 變數值
#3:擷取變數中的訊息。 
       | cut -d '_' -f 2  ==> 將  $wrfbdy 此一字串變數以 "_"符號分隔,
       並取出第二個空間(區塊)中的字串,導向為dd 此變數。 
       同理,變數hh則是為第三空間中的變數。
       如:

wrfbdy=wrfbdy_149988_0_1
 dd=`echo $wrfbdy |cut -d '_' -f 2`
dd= 149988

以 "ls "指令顯示目錄與檔案數目
顯示目錄數目:
ls -al | grep "^d" | awk 'END {print "Number of directories: " NR}'

顯示檔案數目:
ls -al | grep "^_" | awk 'END {print "Number of files: " NR}'

Example:

nt= `ls -al |grep "ens" |awk 'END {print NR}`
echo ' number=' ${nt}
如此就會將所在位置底下,檔頭為ens的的目錄數目回傳為 "nt'






沒有留言:

張貼留言