1. 程式人生 > >鳥哥的Linux私房菜——第十五章:正規表示法

鳥哥的Linux私房菜——第十五章:正規表示法

打印 全部 相關 sed 新增 class 簡介 rep .com

  視頻鏈接

  土豆:

  B站:

  本章講的是

  目錄如下

1. 前言:
2. 基礎正規表示法:
2.1 grep 擷取字符串      (grep -iv i是忽略大小寫,v是反向選擇顯示沒有搜尋字符串的 ‘搜尋字符串‘ filename)
2.2 重要特殊字符(characters)    ([] ^ $ *)
3. 延伸正規表示法:          (+ ? | () )
4. 格式化打印: printf        ()
5. sed 工具簡介            (sed ‘1a ..‘ a新增 d刪除 c取代)
6. awk 工具簡介            (awk NF每一行的字段總數 NR目前在第幾行 FS目前分隔符,默認是空格)
7. 文件數據比對與打印的相關功能    ()
7.1 檔案比對:

diff, cmp, patch     (diff 舊文件 新文件 cmp -s 舊文件 新文件 cmp默認輸出第一個不同點,-s輸出全部 patch要利用.patch差異文件,還要在就文件夾裏面)
7.2 檔案打印準備: pr          ()

1.grep搜尋

1. [] 裏面的字母不管有幾個都指一個

技術分享

2.grep 反向選擇^ 註意!^必須在[]裏面才是反向選擇

技術分享

3.行首^ 行尾$

技術分享

4.*

技術分享

延伸正規表示法

技術分享

sed

技術分享

下面的幾個例子都是顯示結果,文件本身的內容並沒有改變

技術分享

技術分享

技術分享

那麽我們如果想改變文件的內容改怎麽辦呢?就是加一個-i就好了

//
比如我要修改vae.c這個文件,在第2行下面添加vae,也就是第3行是vae sed -i 2a vae vae.c //現在我又想把vae給刪除了,註意是刪第3行啊~ sed -i 3d vae.c

awk

技術分享

有沒有發現第2 3兩行是有問題的?因為2 3兩行的數據有空格或者是Tab,所以在使用awk處理數據的時候要註意你的數據是不是有空格或者Tab

還要註意的是,$0指的是這一行,$1是第一列,$2是第二列...以此類推v

技術分享

技術分享

技術分享

diff

就是比較兩個文件之間的不同,常常與patch命令一起用

技術分享

我改變一個文件

技術分享

技術分享

cmp 比較兩個檔案,以 位 為單位

技術分享

技術分享

patch 我們來講解一個簡單的用法

先把兩個文件的不同寫進一個文檔 註意!diff 必須要加上 -Naur

技術分享

技術分享

pr

技術分享

鳥哥的Linux私房菜——第十五章:正規表示法