1. 程式人生 > >Linux操作命令(六)

Linux操作命令(六)

路徑 文本模式 反向 一個 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.txt
wc -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操作命令(六)