shell指令碼實現某些文字/檔案和資料夾功能.
資料在指令碼的上層資料夾data內,在scripts資料夾內執行該指令碼,按格式得到需要的event.cat檔案.
在此做一記錄, 以便以後檢視.
#!/bin/bash
#以要求格式生成event.cat
#在資料檔案上一級目錄的srcipts檔案內執行
eventid=(`cut -d' ' -f1 iddir.dat`) #獲取iddir.dat的第一列,**id,寫入eventid陣列;
echo $
evdir=(`cut -d' ' -f2 iddir.dat`) #獲取iddir.dat的第二列,**事件目錄名,寫入evdir陣列;
echo $
length=$ #獲取陣列長度
echo "$length"
cd ../data
for file in ./* #遍歷該檔案data下所有資料夾
docd ./$file
path=$pwd
ls >$file.dat #將檔案中的所有檔案寫入$file.dat
sed -i '1d' ./$file.dat #刪除$file.txt最後一行
echo "$path"
echo "$file"
filename=`echo $file | cut -d \/ -f 2` #將字串$file以/分割,取第2部分(檔名),賦值給filename.
echo "$filename"
#將絕對路徑加到路徑裡,得到$file.dat3
filenm=($(awk '' $file.dat))
length2=$
for((i=0;i < length2;i++))
dofilename2=`echo $ | cut -d \/ -f 2`
echo "$path""/""$filename2" >> $file.dat3
done
for((i=0;i < length;i++))
doif [[ $ = $filename ]] #為該資料夾的**事件尋找匹配的**id,賦值給evid.
then
evid=$
echo "$evid"
fidone
evlist=($(awk '' $file.dat3))
length1=$
#將**id寫入evid.txt
for(( i=0;i>evid.dat
done
#將$file.dat3每 3行寫成一行,寫入$file.dat1
for(( i=0;i> $file.dat1
done
#將台站名寫入$file.dat2檔案行首
awk -f"." '' $file.dat1>$file.dat2
echo "evid: $evid"
#將事件id寫入$file.dat2檔案第1行和第2行中間
awk '' $file.dat2 >$file.txt
#cp $file* ../
cp *.txt ../../scripts/
rm $file.*
rm *.dat
#rm *.txt
cd .. #返回上級資料夾-data資料夾
done
#將幾個.txt檔案合併為乙個檔案event.cat
cd ../scripts
cat *.txt>>event.cat
rm *.txt
經測試,成功執行. Shell指令碼相關
引數處理 說明 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。如 用 括起來的情況 以 1 2 n 的形式輸出所有引數。指令碼執行的當前程序id號 後台執行的最後乙個程序的id號 與 相同,但是使用時加引號,並在引號中返回每個引數。如 用 括起來的情況 以 1 2 n 的形式輸出所...
CSS字型和文字相關
目前在做ife的練習,初步學習到css內容,所以做了總結。本博文主要分為兩部分,第一部分介紹css字型屬性,第二部分則介紹了文字常用屬性 s1 首先介紹一下什麼是字型系列 所謂字型系列,我理解的就同一字型下 的不同風格的具體字型的集合。通俗模擬一下,我們知道楷書下有不同風格的字型,比如顏體 柳體 瘦...
shell 文字和檔案批量處理
將檔名中包含aa aa 的字元去掉 bin bash catch string aa aa for i in find name catch string do newname echo i sed e s aa aa echo newname mv i newname done 顯示乙個檔案中的i...