linux 典型指令碼例項

2021-06-06 09:43:10 字數 2091 閱讀 4728

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.通過指令...