關於我自己

2011年3月25日 星期五

foreach

#!/bin/csh

foreach fi (`ls *.HHZ`)
# fi為變數名稱,括號裡面加上想要變成變數的東西,例如這邊就是把整   個資料夾裡面帶有HHZ的檔案都變成變數
set se = `grep Sensitivity: $fi | awk '{print $3}'`
#設定se為一個新的變數,且變數內容是從grep 對應到fi這個變數的檔案中,尋找"Sensitivity"這個字串所在的行數,並print其中的第三欄而來。
echo $se >> test.txt
#叫出上面這個叫做se的變數,然後寫進去一個叫做text.txt的檔案中
echo "123"
#叫出這個自己打的字串~記得字串必須前後用" "括起來,如果是變數就不用括
end
#結束~開始跑scrip!


飯粒 -- 一次處理一大堆的sac檔(一整天的連續資料如果讓sac一次讀進去,記憶體會不足,所以必須批次處理,這時候foreach就是好幫手囉!)
 #!/bin/csh

foreach sacp (`ls *.sac`)
echo "sac << !" >>sacproce.sh
echo "r "$sacp  >>sacproce.sh
echo "interpolate delta 0.05;wh" >> sacproce.sh
echo "q" >>sacproce.sh
echo "!"  >>sacproce.sh
echo "sac << !" >>sacproce.sh
echo "r "$sacp >>sacproce.sh
echo "bp p 2 n 4 c 2 8;w append .f2-8" >>sacproce.sh
echo "r "$sacp".f2-8" >>sacproce.sh
echo "envelope;w append .en" >>sacproce.sh
echo "q" >>sacproce.sh
echo "!" >>sacproce.sh
end

飯粒--用foreach 處理從BATS下載的sac檔,更名以及ch O
 #!/bin/csh
foreach batsp (`ls *SAC`)
set YER=`echo $batsp | awk -F "." '{print$1}'`
set DAY=`echo $batsp | awk -F "." '{print$2}'`
echo "sac >>!" >> batsprocess.sh
echo "r "$batsp >> batsprocess.sh
echo "ch O GMT "$YER $DAY" 00 00 00 000">>batsprocess.sh
echo "ch allt ( sub 0.0 &1,O ) IZTYPE IO">>batsprocess.sh
echo "wh" >>batsprocess.sh
echo "q">>batsprocess.sh
echo "!" >>batsprocess.sh

echo $batsp |awk -F "." '{print "mv "$0" "$7"."$8"."$10".sac"}'>>batsprocess.sh
end

沒有留言:

張貼留言