grep是一種強大的文字搜尋工具,他能使用正規表示式搜尋文字,並把匹配的行統計出來。
命令:grep [選項] [–color=auto] 『搜尋字串』 filename
常用引數:
-c:統計符合條件的字串出現的次數。
-e:支援擴充套件正規表示式。
-i:忽略字元大小寫。
-n:在顯示匹配到的字串前面加上行號。
-v:顯示沒有」搜尋字串」內容的那一行。
-l:列出檔案內容中有搜尋字串的檔名稱。
-o:只輸出檔案中匹配到的部分。
–color=auto:將匹配到的字串高亮出來。
事例1:統計出現數字的行數
-e選項支援正規表示式
[line-address]q 退出, 匹配到某行退出, 提高效率
[line-address]r 匹配到的行讀取某檔案 例如: sed 『1r qqq』 abc , 注意, 寫入的文字是寫在了第1行的後邊, 也就是第2行
[line-address]w file, 匹配到的行寫入某檔案 例如: sed -n 『/m/w qqq』 abc , 從abc中讀取帶m的行寫到qqq檔案中, 注意, 這個寫入帶有覆蓋性.
舉例:
sed 『1d』 abc 刪除 abc 檔案裡的第一行, 注意, 這時會顯示除了第一行之外的所有行, 因為第一行已經被刪除了(實際檔案並沒有被刪除,而只是顯示的時候被刪除了)
sed -n 『1d』 abc 什麼內容也不顯示, 因為經過sed處理的行, 是個刪除操作, 所以不現實.
sed 『2,d′
abc刪
除abc
中從第二
行到最後
一行所有
的內容,
注意, 符號正規表示式中表示行末尾, 但是這裡並沒有說那行末尾, 就會指最後一行末尾, ^開頭, 如果沒有指定哪行開頭, 那麼就是第一行開頭
sed 『$d』 abc 只刪除了最後一行, 因為並沒有指定是那行末尾, 就認為是最後一行末尾
sed 『/test/d』 abc 檔案中所有帶 test 的行, 全部刪除
sed 『/test/a rrrrrrr』 abc 將 rrrrrrr 追加到所有的帶 test 行的下一行 也有可能通過行 sed 『1,5c rrrrrrr』 abc
sed 『/test/c rrrrrrr』 abc 將 rrrrrrr 替換所有帶 test 的行, 當然, 這裡也可以是通過行來進行替換, 比如 sed 『1,5c rrrrrrr』 abc
awk也是文字處理工具,與sed相比,awk不僅能以行為單位處理檔案,還可以以列為單位處理檔案。awk的預設行分隔符是」\n」,預設列分隔符是空格或tab,但是行分隔符和列分隔符都是可以自定義。awk還是一門很複雜的指令碼語言,具有像c語言一樣的分支和迴圈結構。
awk(關鍵字:分析&處理) 一行一行的分析處理 awk 『條件型別1條件型別2』 filename, awk 也可以讀取來自前乙個指令的 standard input
相對於sed常常用於一整行處理, awk則比較傾向於一行當中分成數個」字段」(區域)來處理, 預設的分隔符是空格鍵或tab鍵
例如:
last -n 5 | awk 『』 這裡大括號內1"
\t"3 之間不加空格也可以, 不過最好還是加上個空格, 另外注意」\t」是有雙引號的, 因為本身這些內容都在單引號內 0代
表整行 1代表第乙個區域, 依此類推
awk的處理流程是:
1. 讀第一行, 將第一行資料填入變數 0,
1… 等變數中
2. 依據條件限制, 執行動作
3. 接下來執行下一行
所以, awk一次處理是一行, 而一次中處理的最小單位是乙個區域
另外還有3個變數, nf: 每一行處理的字段數, nr 目前處理到第幾行 fs 目前的分隔符
邏輯判斷 > < >= <= == !== , 賦值直接使用=
cat /etc/passwd | awk 『
3<10 』 首先定義分隔符為:, 然後判斷, 注意看, 判斷沒有寫在{}中, 然後執行動作, fs=」:」這是乙個動作, 賦值動作, 不是乙個判斷, 所以不寫在{}中
begin end , 給程式設計師乙個初始化和收尾的工作, begin之後列出的操作在{}內將在awk開始掃瞄輸入之前執行, 而end{}內的操作, 將在掃瞄完輸入檔案後執行.
awk 『/test/ 』 abc 將帶有test的行的行號列印出來, 注意//之間可以使用正規表示式
awk {}內, 可以使用 if else ,for(i=0;i<10;i++), i=1 while(i
mysql的簡單用法 mysql簡單用法
刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...
oracle cursor 簡單用法
procedure changespecialdiscount compid in invarchar2 ccid in invarchar2 cono in invarchar2 is sum cc all number 14 4 0 wsp disc number 14 4 wspcl disc...
Oracle Trigger簡單用法
1.trigger 是自動提交的,不用commit,rollback 2.trigger最大為32k,如果有複雜的應用可以通過在trigger裡呼叫procedure或function來實現。3.語法 create or replace trigger on declare begin except...