linux基本命令續(雜糅和轉)

此處使用CP 命令複製/etc/profile和/etc/init.d/network到家目錄下,固然也能夠指定其餘目錄如./ 根目錄等。linux

在2提示處,若是輸錯了文字,能夠ctrl+backspace鍵來刪除,登陸linux服務器版(相似dos界面)時,若是輸錯用戶名或密碼git

也能夠用ctrl+backspace鍵來刪除,並從新輸入。正則表達式

grepexpress

基本格式:grep expressioncentos

     1.主要參數服務器

    [options]主要參數:
    -c:只輸出匹配行的計數。
    -i:不區分大小寫
    -h:查詢多文件時不顯示文件名。
    -l:查詢多文件時只輸出包含匹配字符的文件名。
    -n:顯示匹配行及行號。
    -s:不顯示不存在或無匹配文本的錯誤信息。
    -v:顯示不包含匹配文本的全部行。網絡

    pattern正則表達式主要參數:
    \: 忽略正則表達式中特殊字符的原有含義。
    ^:匹配正則表達式的開始行。
    $: 匹配正則表達式的結束行。
    \<:從匹配正則表達 式的行開始。
    \>:到匹配正則表達式的行結束。
    [ ]:單個字符,如[A]即A符合要求 。
    [ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:全部的單個字符。
    * :有字符,長度能夠爲0。工具

    2.示例  學習

    (1)grep a d  #顯示d文件中包含 test的行
    (2)grep -r magic /usr/src  #顯示/usr/src目錄下的文件(包含子目錄)包含magic的行spa

做爲linux中最爲經常使用的三大文本(awk,sed,grep)處理工具之一,掌握好其用法是頗有必要的。

首先談一下grep命令的經常使用格式爲:grep  [選項]  」模式「  [文件]

grep家族總共有三個:grep,egrep,fgrep。

經常使用選項:

  -E :開啓擴展(Extend)的正則表達式。

  -i :忽略大小寫(ignore case)。

  -v :反過來(invert),只打印沒有匹配的,而匹配的反而不打印。

  -n :顯示行號

  -w :被匹配的文本只能是單詞,而不能是單詞中的某一部分,如文本中有liker,而我搜尋的只是like,就可使用-w選項來避免匹配liker

  -c :顯示總共有多少行被匹配到了,而不是顯示被匹配到的內容,注意若是同時使用-cv選項是顯示有多少行沒有被匹配到。

  -o :只顯示被模式匹配到的字符串。

  --color :將匹配到的內容以顏色高亮顯示。

  -A  n:顯示匹配到的字符串所在的行及其後n行,after

  -B  n:顯示匹配到的字符串所在的行及其前n行,before

  -C  n:顯示匹配到的字符串所在的行及其先後各n行,context

做爲linux中最爲經常使用的三大文本(awk,sed,grep)處理工具之一,掌握好其用法是頗有必要的。

首先談一下grep命令的經常使用格式爲:grep  [選項]  」模式「  [文件]

grep家族總共有三個:grep,egrep,fgrep。

經常使用選項:

  -E :開啓擴展(Extend)的正則表達式。

  -i :忽略大小寫(ignore case)。

  -v :反過來(invert),只打印沒有匹配的,而匹配的反而不打印。

  -n :顯示行號

  -w :被匹配的文本只能是單詞,而不能是單詞中的某一部分,如文本中有liker,而我搜尋的只是like,就可使用-w選項來避免匹配liker

  -c :顯示總共有多少行被匹配到了,而不是顯示被匹配到的內容,注意若是同時使用-cv選項是顯示有多少行沒有被匹配到。

  -o :只顯示被模式匹配到的字符串。

  --color :將匹配到的內容以顏色高亮顯示。

  -A  n:顯示匹配到的字符串所在的行及其後n行,after

  -B  n:顯示匹配到的字符串所在的行及其前n行,before

  -C  n:顯示匹配到的字符串所在的行及其先後各n行,context

模式部分:

  一、直接輸入要匹配的字符串,這個能夠用fgrep(fast grep)代替來提升查找速度,好比我要匹配一下hello.c文件中printf的個數:fgrep  -c  "printf"  hello.c

  二、使用基本正則表達式,下面談關於基本正則表達式的使用:

    匹配字符:

      . :任意一個字符。

      [abc] :表示匹配一個字符,這個字符必須是abc中的一個。

      [a-zA-Z] :表示匹配一個字符,這個字符必須是a-z或A-Z這52個字母中的一個。

      [^123] :匹配一個字符,這個字符是除了一、二、3之外的全部字符。

      對於一些經常使用的字符集,系統作了定義:

      [A-Za-z] 等價於 [[:alpha:]]

      [0-9] 等價於 [[:digit:]]

      [A-Za-z0-9] 等價於 [[:alnum:]]

      tab,space 等空白字符 [[:space:]]

      [A-Z] 等價於 [[:upper:]]

      [a-z] 等價於 [[:lower:]]

      標點符號 [[:punct:]]

 匹配次數:

      \{m,n\} :匹配其前面出現的字符至少m次,至多n次。
      \? :匹配其前面出現的內容0次或1次,等價於\{0,1\}。
      * :匹配其前面出現的內容任意次,等價於\{0,\},因此 ".*" 表述任意字符任意次,即不管什麼內容所有匹配。

位置錨定:

      ^ :錨定行首

      $ :錨定行尾。技巧:"^$"用於匹配空白行。

      \b或\<:錨定單詞的詞首。如"\blike"不會匹配alike,可是會匹配liker

      \b或\>:錨定單詞的詞尾。如"\blike\b"不會匹配alike和liker,只會匹配like

      \B :與\b做用相反。

 分組及引用:

      \(string\) :將string做爲一個總體方便後面引用

        \1 :引用第1個左括號及其對應的右括號所匹配的內容。

        \2 :引用第2個左括號及其對應的右括號所匹配的內容。

        \n :引用第n個左括號及其對應的右括號所匹配的內容。

 三、擴展的(Extend)正則表達式(注意要使用擴展的正則表達式要加-E選項,或者直接使用egrep):

    匹配字符:這部分和基本正則表達式同樣

 

    匹配次數

      * :和基本正則表達式同樣

      ? :基本正則表達式是\?,二這裏沒有\。

      {m,n} :相比基本正則表達式也是沒有了\。

      + :匹配其前面的字符至少一次,至關於{1,}。

 

    位置錨定:和基本正則表達式同樣。

 

    分組及引用

      (string) :相比基本正則表達式也是沒有了\。

        \1 :引用部分和基本正則表達式同樣。

        \n :引用部分和基本正則表達式同樣。

 

    或者

      a|b :匹配a或b,注意a是指 | 的左邊的總體,b也同理。好比 C|cat 表示的是 C或cat,而不是Cat或cat,若是要表示Cat或cat,則應該寫爲 (C|c)at 。記住(string)除了用於引用還用於分組。

     

注1:默認狀況下,正則表達式的匹配工做在貪婪模式下,也就是說它會盡量長地去匹配,好比某一行有字符串 abacb,若是搜索內容爲 "a.*b" 那麼會直接匹配 abacb這個串,而不會只匹配ab或acb。

注2:全部的正則字符,如 [ 、* 、( 等,若要搜索 * ,而不是想把 * 解釋爲重複先前字符任意次,可使用 \* 來轉義。

 

下面用一個練習來結束本次grep的學習:

在網絡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33 中檢索出全部的 IP

一、檢索出 0-255的範圍

二、由0-255的數字組合成IP

三、簡化

 

grep默認是與上述截圖黑色的部分結合,紅色的是擴展用的。

擴展使用時用grep -E 擴展 或者 grep \擴展

grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

grep經常使用用法

複製代碼
[root@www ~]# grep [-acinv] [--color=auto] '搜尋字符串' filename
選項與參數:
-a :將 binary 文件以 text 文件的方式搜尋數據
-c :計算找到 '搜尋字符串' 的次數
-i :忽略大小寫的不一樣,因此大小寫視爲相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字符串' 內容的那一行!
--color=auto :能夠將找到的關鍵詞部分加上顏色的顯示喔!
複製代碼

一、將filename中包含w的行輸出來

[root@zhoucentos log]# grep w filename 
wo ai wo jia
wo hen hao
da jia hao wo shi yi ge hao ren

 二、把行號顯示出來

[root@zhoucentos log]# grep -n w filename 
1:wo ai wo jia
3:wo hen hao
4:da jia hao wo shi yi ge hao ren

三、有多少行含有匹配的模式

[root@zhoucentos log]# grep -c wo filename 
3

四、與正則表達式結合

字符類的搜索:搜尋 test 或 taste 這兩個單字, [] 裏面不論有幾個字節,他都謹表明某『一個』字節

[root@zhoucentos log]# grep t[ae]st filename 
test is meng
tast is huan

反向搜索--    字符類的反向選擇 [^] :若是想要搜索到有 oo 的行,但不想要 oo 前面有 g,以下

[root@zhoucentos log]# grep -n '[^g]oo' filename 
8:root is a super

 行首與行尾字節 ^ $

注意:

^ 符號,在字符類符號(括號[])以內與以外是不一樣的! 在 [] 內表明『反向選擇』,在 [] 以外則表明定位在行首的意義!

只要行首是wo的行

[root@zhoucentos log]# grep -n ^wo filename 
1:wo ai wo jia
3:wo hen hao

找出空白行----只有行首跟行尾 (^$)

[root@zhoucentos log]# grep -n '^$' filename 
6:
9:
10:

任意一個字節 . 與重複字節 *
這兩個符號在正則表達式的意義以下:

. (小數點):表明『必定有一個任意字節』的意思;
* (星號):表明『重複前一個字符, 0 到無窮屢次』的意思,爲組合形態

[root@zhoucentos log]# grep -n 'g..d' filename 
8:good is a gread

 

 

 

相關文章
相關標籤/搜索