人要多學習,網路 資訊發達,每次看到文章時,一個個新東西出現,學也學不完,但頭腦不能止步,你要做個成功的人,還是習慣於現狀的人,我會選擇成功並往上爬。
- Aug 23 Sun 2015 19:35
-
20150823(日)習慣
人,或許有時候習慣不是一件好事,但習慣成自然,我覺得是很不錯的,至少我不用特地打扮,當習慣被切掉時,感覺真的不是這麼的好。
人要多學習,網路 資訊發達,每次看到文章時,一個個新東西出現,學也學不完,但頭腦不能止步,你要做個成功的人,還是習慣於現狀的人,我會選擇成功並往上爬。
人要多學習,網路 資訊發達,每次看到文章時,一個個新東西出現,學也學不完,但頭腦不能止步,你要做個成功的人,還是習慣於現狀的人,我會選擇成功並往上爬。
- Aug 23 Sun 2015 12:17
-
grep 擷取字串
grep 擷取字串
[root@test root]# grep [-acinv] '搜尋字串' filename
參數說明:
-a :將 binary 檔案以 text 檔案的方式搜尋資料
-c :計算找到 '搜尋字串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!
--color=auto 可將正確的那個擷取資料列出顏色
範例:
[root@test root]# grep 'root' /var/log/secure
將 /var/log/secure 這個檔案中有 root 的那一行秀出來
[root@test root]# grep -v 'root' /var/log/secure
若該行沒有 root 才將資料秀出來到螢幕上!
[root@test root]# last | grep root
若該行有 root 才將資料秀出來到螢幕上!
- Aug 23 Sun 2015 12:11
-
grep 重要特殊字元(characters)
grep 重要特殊字元(characters)
grep基礎的正規表示法特殊字符彙整如下:
RE 字符
意義與範例
^word
待搜尋的字串(word)在行首!
範例:grep -n '^#' regular_express.txt
搜尋行首為 # 開始的那一行!
word$
待搜尋的字串(word)在行尾!
範例:grep -n '!$' regular_express.txt
將行尾為 ! 的那一行列印出來!
.
代表『任意一個』字符,一定是一個任意字符!
範例:grep -n 'e.e' regular_express.txt
搜尋的字串可以是 (eve) (eae) (eee) (e e), 但不能僅有 (ee) !亦即 e 與 e 中間『一定』僅有一個字元,而空白字元也是字元!
\
跳脫字符,將特殊符號的特殊意義去除!
範例:grep -n \' regular_express.txt
搜尋含有單引號 ' 的那一行!
*
重複零個或多個的前一個 RE 字符
範例:grep -n 'ess*' regular_express.txt
找出含有 (es) (ess) (esss) 等等的字串,注意,因為 * 可以是 0 個,所以 es 也是符合帶搜尋字串。另外,因為 * 為重複『前一個 RE 字符』的符號, 因此,在 * 之前必須要緊接著一個 RE 字符喔!例如任意字元則為 『.*』 !
\{n,m\}
連續 n 到 m 個的『前一個 RE 字符』
若為 \{n\} 則是連續 n 個的前一個 RE 字符,
若是 \{n,\} 則是連續 n 個以上的前一個 RE 字符!
範例:grep -n 'go\{2,3\}g' regular_express.txt
在 g 與 g 之間有 2 個到 3 個的 o 存在的字串,亦即 (goog)(gooog)
[]
字元集合的 RE 特殊字符的符號
[list]
範例:grep -n 'g[ld]' regular_express.txt
搜尋含有 (gl) 或 (gd) 的那一行~
需要特別留意的是,在 [] 當中『謹代表一個待搜尋的字元』,
例如: a[afl]y 代表搜尋的字串可以是 aay, afy, aly
亦即 [afl] 代表 a 或 f 或 l 的意思!
[ch1-ch2]
範例:grep -n '[0-9]' regular_express.txt
搜尋含有任意數字的那一行!需特別留意,在字元集合 [] 中的減號 - 是有特殊意義的,他代表兩個字元之間的所有連續字元!但這個連續與否與 ASCII 編碼有關, 因此,您的編碼需要設定正確(在 bash 當中,需要確定 LANG 與 LANGUAGE 的變數是否正確!) 例如所有大寫字元則為 [A-Z]
[^]
範例:grep -n 'oo[^t]' regular_express.txt
搜尋的字串可以是 (oog) (ood) 但不能是 (oot) ,那個 ^ 在 [] 內時, 代表的意義是『反向選擇』的意思~例如,我不要大寫字元,則為 [^A-Z] ~ 但是,需要特別注意的是,如果以 grep -n [^A-Z] regular_express.txt 來搜尋, 卻發現該檔案內的所有行都被列出,為什麼?因為這個 [^A-Z] 是『非大寫字元』的意思, 因為每一行均有非大寫字元,例如第一行的 "Open Source" 就有 p,e,n,o.... 等等的小寫字元, 以及雙引號 (") 等字元,所以當然符合 [^A-Z] 的搜尋!
grep基礎的正規表示法特殊字符彙整如下:
搜尋行首為 # 開始的那一行!
將行尾為 ! 的那一行列印出來!
搜尋的字串可以是 (eve) (eae) (eee) (e e), 但不能僅有 (ee) !亦即 e 與 e 中間『一定』僅有一個字元,而空白字元也是字元!
搜尋含有單引號 ' 的那一行!
找出含有 (es) (ess) (esss) 等等的字串,注意,因為 * 可以是 0 個,所以 es 也是符合帶搜尋字串。另外,因為 * 為重複『前一個 RE 字符』的符號, 因此,在 * 之前必須要緊接著一個 RE 字符喔!例如任意字元則為 『.*』 !
若為 \{n\} 則是連續 n 個的前一個 RE 字符,
若是 \{n,\} 則是連續 n 個以上的前一個 RE 字符!
在 g 與 g 之間有 2 個到 3 個的 o 存在的字串,亦即 (goog)(gooog)
範例:grep -n 'g[ld]' regular_express.txt
搜尋含有 (gl) 或 (gd) 的那一行~
需要特別留意的是,在 [] 當中『謹代表一個待搜尋的字元』,
例如: a[afl]y 代表搜尋的字串可以是 aay, afy, aly
亦即 [afl] 代表 a 或 f 或 l 的意思!
[ch1-ch2]
範例:grep -n '[0-9]' regular_express.txt
搜尋含有任意數字的那一行!需特別留意,在字元集合 [] 中的減號 - 是有特殊意義的,他代表兩個字元之間的所有連續字元!但這個連續與否與 ASCII 編碼有關, 因此,您的編碼需要設定正確(在 bash 當中,需要確定 LANG 與 LANGUAGE 的變數是否正確!) 例如所有大寫字元則為 [A-Z]
[^]
範例:grep -n 'oo[^t]' regular_express.txt
搜尋的字串可以是 (oog) (ood) 但不能是 (oot) ,那個 ^ 在 [] 內時, 代表的意義是『反向選擇』的意思~例如,我不要大寫字元,則為 [^A-Z] ~ 但是,需要特別注意的是,如果以 grep -n [^A-Z] regular_express.txt 來搜尋, 卻發現該檔案內的所有行都被列出,為什麼?因為這個 [^A-Z] 是『非大寫字元』的意思, 因為每一行均有非大寫字元,例如第一行的 "Open Source" 就有 p,e,n,o.... 等等的小寫字元, 以及雙引號 (") 等字元,所以當然符合 [^A-Z] 的搜尋!
- Aug 23 Sun 2015 12:01
-
awk 工具簡介&用法
此文章取至鳥哥,awk對於使用Bash的部分是非常重要的一環。
https://linux.vbird.org/linux_basic/0330regularex/0330regularex-fc4.php
awk 工具簡介
- Aug 23 Sun 2015 11:40
-
vi 與 vim 的指令整理
- Aug 23 Sun 2015 11:27
-
2015/08/23(日)申請部落
2015/08/23(日)第一次申請部落格,來備註所遇到的問題。
1