#!bin/bash
function mix() {
for file in `ls $1`
do
if test -f $1"/"$file
then
echo $file 是文件
if echo $file | grep -q '.m$'
then
echo .m文件
insertCodeToFile $1"/"$file
fi
else
echo $file 是目錄
mix $1"/"$file
fi
done
}
function insertCodeToFile() {
echo $1
sed -i '' "/- (/i \\
insertCodeToFile\\
" $1
cat $1
}
mix $1
參數(shù)
1.全局參數(shù)草丧,跟在命令后面的都是參數(shù)漾岳,可以通過"$n"來獲取轰绵,$1代表第一個(gè)參數(shù)
2.函數(shù)參數(shù),函數(shù)也沒有參數(shù)個(gè)數(shù)限定尼荆,跟著函數(shù)調(diào)用后面就行左腔,可以通過"$n"來獲取,$1代表第一個(gè)參數(shù)
語句中執(zhí)行函數(shù)
for file in `ls $1`
ls就是一個(gè)函數(shù)捅儒,通過``包裹起來液样,就可以直接在語句中執(zhí)行函數(shù),這個(gè)很實(shí)用
grep -q
grep 默認(rèn)反回匹配到的內(nèi)容巧还,使用 -q 參數(shù)鞭莽,可以讓grep返回邏輯值,匹配到為1麸祷,否則為0
sed
sed -i '' "/- (/i \\
insertCodeToFile\\
" $1
匹配"- (",在這一行前面插入insertCodeToFile澎怒,并且insertCodeToFile獨(dú)占一行
sed簡(jiǎn)單理解
sed在處理文本時(shí),是以行為單位進(jìn)行處理的阶牍,類似于UITableView.而awk是行和列喷面,類似于UICollectionView。
sed命令的大致格式可以理解為
sed 處理方式 處理范圍 處理方法 輸入源
處理方式:-e -n -f -i -r
-e : 在命令行執(zhí)行輸入
-i : 直接操作輸入源
-n : 只顯示處理過的行
-r : 支持正則表達(dá)式
-f : 從文件中讀取處理方法
處理范圍
sed '2d' 刪除第二行
sed '2,5d' 刪除第二2-5行
sed '$d' 刪除最后一行
處理范圍也可以通過匹配來獲取走孽,這應(yīng)該才是最常用到
sed '/aaa/d' 刪除含有'aaa'的行
sed '/aaa/i 這是插入內(nèi)容' 在含有'aaa'的行前面插入‘這是插入內(nèi)容’
當(dāng)處理范圍是通過匹配來獲取時(shí)惧辈,這個(gè)匹配的內(nèi)容稱之為模板,/pattern/,'/'是模板的分隔符磕瓷,可以使用其他的字符作為模板盒齿,
sed '%aaa%i /////' 當(dāng)‘/’不表示分隔符是,它就沒有特殊含義,不需要轉(zhuǎn)移县昂。