本次實驗將介紹 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 ...