1、檔名大小寫轉換
oldfile=old.file
newfile=`echo $oldfile | tr 'a-z' 'a-z'`
2、檔案內容大小寫轉換
如將目錄test下所有檔案的檔案內容轉成小寫
dir=test
for file in `ls $dir`
newfile=`echo $file|tr 'a-z' 'a-z'`
cat $dir/$file | tr 'a-z' 'a-z' > $dir/$newfile
done
3、轉換編碼
iconv -c -f gbk -t utf-8 $file -o $newfile
4、部分替換,如將delete替換為delete from,但如果原就是delete from,則不變
如: delete from table1 where x = 1;
delete table1 where x = 1;
sed '/ from/!s/delete /delete from/g' --不能使用雙引號
解釋: / from/! 是條件,表示若不存在匹配" from",反之 / from/ 就表示存在匹配。
s/delete /delete from/g 就是將delete 替換為delete from。
5、在匹配行之前之後新增行
如: this is first line.
this is last line.
要在this is last line之前新增一行this is second line.
sed '/^.* last line.$/i\this is second line.'
要在this is last line之後新增一行 this is new last line.
sed '/^.* last line.$/a\this is new last line.'
解決: i\表示在匹配行之前插入一行, a\表示在匹配行之後追加一行。
6、跨行指定區間匹配
select top 1 stuid into myid from students
where age = 17;
sed -e ":begin; /select top 1/,/;/ ; }; s/select top 1 \(.*\);/select \1 limit 1;/; };"
解釋::begin 表示乙個跳轉的標記點
/select top 1/,/;/ 表示起始點為 「select top 1",結束點為 「;」
/;/! 表示條件,不匹配";"
$! $表示結束符,在sed中表示檔案結束,$!表示檔案未結束
n 表示把下一行追加到緩衝區,即與前一行邏輯上變為一行,實際上換行符仍存在。
b begin 跳轉 begin標記點
7、提取指定字串
如提取建立trigger語句中的trigger名,動作 所屬表名 等
create or replace trigger "mytrigger" disable
after delete on "students"
for each row
as declare
begin
...end;
可採用以下指令碼
sed -e ':begin; /create or replace trigger/,/end;/ ; }; s/create or replace trigger "\([_|a-z]\+\)" *\(disable\)*[ |\n]*\([a-z]\+\) \([ |a-z]\+\) on "\(.*\)".*/\1 \2 \3 \4 \5/; };'
結果: mytrigger disable after delete students
8、注釋若干行檔案內容 (注意注釋的內容中不能出現 "*/",若存在則需要先刪除它)
如begin
...end;
注釋begin到end之間的內容。
sed '/^begin;/a\\/*'
sed '/^end;/i\*\/'
結果如下:
begin
/* ...
*/end;
Shell指令碼典型應用
一 指令碼場景 二 實現指令碼 1 主控指令碼實現 2 系統資訊及系統狀態分析 3 nginx和mysql應用狀態分析 4 應用日誌分析 三 場景指令碼演示 四 該指令碼學習意義 1 明白shell使用用途 不懂shell能在我們的op工作中起到什麼作用,能做什麼?2 明白shell使用特性 只是侷...
高技派典型的例項
室內設計流派主要是指現代主義室內設計的藝術派別。高技派或稱重技派,注重 高度工業技術 的表現,有幾個明顯的特徵 首先是喜歡使用最新的材料,尤其是不鏽鋼 鋁塑板或合金材料,作為室內 裝飾及家具設計的主要材料 其次是對於結構或機械組織的暴露,如把室內水管 風管暴露在外,或使用透明的 裸露機械零件的家用電...
shell指令碼 指令碼學習例項
直接顯示的指令碼內容,執行結果,不再列出。1.判斷某一目錄是否存在,若不存在則新建此目錄 5 bin bash read p 請輸入乙個目錄 dirif d dir then echo 目錄已存在 else echo 目錄不存在,正在建立 mkdir p dir echo 建立完成 fi2.通過指令...