Linux操作命令(六)
本次實驗將介紹 Linux 命令中 wc 和 grep 命令的用法。
- wc
- grep
1.wc
wc命令是一個統計的工具,主要用來顯示文件所包含的行、字和字節數。
wc命令是word count的縮寫。
【命令格式】:wc [選項] [文件] 【常用參數】:-c:統計字節數 -l:統計行數 -m:統計字符數,這個標誌不能與-c標誌一起使用 -w:統計字數,一個字被定義為由空白、跳格或換行字符分隔的字符串 -L:打印最長行的長度
【常用範例】: 1.統計文件的字節數、行數、字符數
wc -c c.txt wc -l c.txtwc -m c.txt
註意每行結尾的換行符也算一個字符,空格也算一個字符。另外,由於系統采用 UTF-8 編碼,所以一個漢字為 3 字節,9 個漢字加上一個換行,一共 28 個字節。
2.統計文件的字節數、行數、字符數、只打印數字,不打印文件名
cat c.txt | wc -c cat c.txt | wc -l cat c.txt | wc -m
3.統計/bin目錄下的命令個數
ls /bin | wc -l
2.grep
grep用來找到文件中的匹配文本,並且能夠接受正則表達式和通配符,同時可以用多個grep命令選項來生成各種格式的輸出。
grep的工作方式是這樣,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板後的所有字符串被看作文件名。搜索的結果被送到標準輸出,不影響原文件內容。
grep可用於shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2.我們利用這些返回值就可進行一些自動化的文本處理方式。
【命令格式】:grep [選項] pattern [file] 【常用參數】:-c:計算找到‘搜尋字符串’(即pattern)的次數 -i:忽略大小寫的不同,所以大小寫視為相同-n:輸出行號 -v:反向選擇,打印不匹配的行 -r:遞歸搜索 --color=auto:將找到的關鍵詞部分加上顏色顯示
【常用範例】: 1.將/etc/passwd文件中出現root的行取出來,關鍵詞部分加上顏色顯示
grep "root" /etc/passwd --color=auto cat /etc/passwd | grep "root" --color=auto
2.將/etc/passwd文件中沒有出現root和nologin的行取出來
grep -v "root" /etc/passwd | grep -v "nologin"
3.在當前目錄下遞歸搜索文件中包含main()的文件,經常用於查找某些函數位於哪些源代碼文件中
grep -r "main()"
正則表達式與grep命令
正則表達式是一種符號表示法,被用來識別文本模式。在某種程度上,它們與匹配文件和路徑名的shell通配符都支持正則表達式,以此來幫助解決文本操作問題。
正則表達式元字符由以下字符組成:
^ $ . [] {} - ? * + () | \【常用範例】: 1.利用Linux系統自帶的字典查找一個五個字母的單詞,第三個字母為j,最後一個字母為r /usr/share/dict目錄下存放字典文件
grep ‘^..j.r$‘ linux.words
2.驗證固定電話,打印符合條件的電話,固定電話格式基本都是帶有 0 的區號+連接符“-”+電話號碼,另外還有可能有分機號,區號有 3 位、4 位,電話號碼有 7 位和 8 位的,可以使用如下命令:
【思考題】:
Linux操作命令(六)