Linux操作命令(六) wc grep

2021-08-19 02:00:54 字數 2611 閱讀 5097

本次實驗將介紹 linux 命令中 wc 和 grep 命令的用法。

課程使用的實驗環境為 ubuntu linux 14.04 64 位版本。實驗中會用到程式:

wc 命令是乙個統計的工具,主要用來顯示檔案所包含的行、字和位元組數。

wc 命令是 word count 的縮寫。

(1)命令格式

wc [選項] [檔案]

(2)常用引數

引數描述-c

統計位元組數

-l統計行數

-m統計字元數,這個標誌不能與 -c 標誌一起使用

-w統計字數,乙個字被定義為由空白、跳格或換行字元分隔的字串

-l列印最長行的長度

(3)常用範例

例一:統計檔案的位元組數、行數、字元數,可以使用如下命令:

wc-c

c.txt

wc-l

c.txt

wc-m

c.txt

注意每行結尾的換行符也算乙個字元,空格也算乙個字元。另外,由於系統採用 utf-8 編碼,所以乙個漢字為 3 位元組,9 個漢字加上乙個換行,一共 28 個位元組。

例二:統計檔案的位元組數、行數、字元數,只列印數字,不列印檔案名,可以使用如下命令:

cat c.txt | wc -c 

cat c.txt | wc -l

cat c.txt | wc -m

例三:統計/bin 目錄下的命令個數,可以使用如下命令:

ls

/bin | wc -l

grep 是個很強大的命令,用來找到檔案中的匹配文字,並且能夠接受正規表示式和萬用字元,同時可以用多個 grep 命令選項來生成各種格式的輸出。

grep 的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到標準輸出,不影響原檔案內容。

grep 可用於 shell 指令碼,因為 grep 通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回 0,如果搜尋不成功,則返回 1,如果搜尋的檔案不存在,則返回 2。我們利用這些返回值就可進行一些自動化的文字處理工作。

(1)命令格式

grep [選項] pattern [file]

(2)常用引數

引數描述-c

計算找到 '搜尋字串'(即 pattern) 的次數

-i忽略大小寫的不同,所以大小寫視為相同

-n輸出行號

-v反向選擇,列印不匹配的行

-r遞迴搜尋

--color=auto

(3)常用範例

grep

"root"

/etc/passwd --color=auto

cat /etc/passwd | grep

"root" --color=auto

例二:將/etc/passwd 檔案中沒有出現 root 和 nologin 的行取出來,可以使用如下命令:

grep -v "root"

/etc/passwd | grep -v "nologin"

例三:在當前目錄下遞迴搜尋檔案中包含 main()的檔案,經常用於查詢某些函式位於哪些源**檔案中,可以使用如下命令:

grep

-r "main()".

正規表示式是一種符號表示法,被用來識別文字模式。在某種程度上,它們與匹配檔案和路徑名的 shell 萬用字元比較相似,但其規模更大。許多命令列工具和大多數的程式語言都支援正規表示式,以此來幫助解決文字操作問題。

正規表示式元字元由以下字元組成:

(1)常用範例

例一:利用 linux 系統自帶的字典查詢乙個五個字母的單詞,第三個字母為 j,最後乙個字母為 r ,/usr/share/dict 目錄下存放字典檔案,可以使用如下命令:

grep

'^..j.r$' linux.words

例二:驗證固定**,列印符合條件的**,固定**格式基本都是帶有 0 的區號+連線符「-」+**號碼,另外還有可能有分機號,區號有 3 位、4 位,**號碼有 7 位和 8 位的,可以使用如下命令:

grep

"^0[0-9]

-[0-9]

(-[0-9]

)?$" telphone.txt

區號:前面乙個 0,後面跟 2-3 位數字 : 0[0-9]

**號碼:7-8 位數字: [0-9]

分機號:一般都是 3-4 位數字: [0-9]

注意執行下面的命令時沒有任何匹配輸出,這是因為沒有加-e 選項,那例一沒加為什麼可以呢,這是因為 grep 把.當成 shell 萬用字元,不是正規表示式的元字元。

本課程部分內容參考博文每天乙個linux命令,感謝作者peida提供的優質教程。

上一節:linux操作命令(五)

下一節:linux操作命令(七)

(六)Linux常用操作命令

一 目錄 檔案 顯示 建立 切換 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent touch 建立空檔案 cd 切換目錄 二 拷貝 剪下 移動 刪除 cp 拷貝 m...

Linux基本操作命令(六)

shell指令碼 shell指令碼的工作方式有兩種 1.互動式 使用者輸入一條命令就立即執行。2.批處理 由使用者事先編寫好乙個完整的shell指令碼,shell會一次性執行指令碼中諸多的命令。編寫簡單的shell指令碼 bin bash shell指令碼固定開頭行,是用來告訴系統使用哪種shell...

Linux常用命令 六 網路操作命令

6 網路操作命令 ftp 傳送檔案 bye 結束連線並結束程式 ping 檢測主機 telnet 遠端登陸 rlogin 遠端登入 netstat 顯示網路狀態 6.1 ftp命令 ftp命令用來傳輸檔案,非常重要。如果在網路上看到乙個很重要的檔案,就可以用這個命令把那個檔案傳到自己的機器上來。d ...