亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

shell復習筆記----查找與替換

2024-06-28 13:20:17
字體:
來源:轉載
供稿:網友
shell復習筆記----查找與替換

查找文檔

以grep 程序查找文本(匹配文本 matching text)相當方便.傳統上有三種程序可以用來查找整個文本文件.

  • grep 最早的文本匹配程序.其最簡單的方式就是使用固定字符串
    $ who |grep -F austen     //范例中使用- F 選項,以查找固定字符串 austen.

    事實上,只要匹配的模式里未含有正則表達式的 meta 字符(metacharacter),則 grep 默認行為模式就等同于使用了-F.

    $ who |grep austen
  • egrep 擴展式 grep.這個程序使用擴展正則表達式--這是一套功能更強大的正則表達式,使用它的代價是好屌更多的運算資源.
  • fgrep 快速 grep(Fast grep).這個版本匹配固定字符串而非正則表達式,它使用優化的算法,能更有效匹配固定字符串.
grep語法:    grep [ options ...] pattern - spec [ files ...]用途:     現實匹配一個或者多個模式的文本行.時常會作為管道(pipeline)的第一步,以便于對匹配的數據做進一步處理.主要選項:      - E 使用擴展正則表達式進行匹配. grep -E可以取代傳統的 egrep.      - F 使用固定字符串進行匹配. frep -F可取代傳統的 fgrep 命令      - e  pat-list 通常,第一個非選項的參數會指定要匹配的模式      - f  pat -file 從 pat -file 文件讀取模式作匹配.      - i  模式匹配時忽略大小寫差異.      - l  流出匹配模式的文件名稱,而不是打印匹配的行.      - q  靜默地.摸過模式匹配成功則 grep 會成功地離開,而不將匹配的行寫入標準輸出;否則即使不成功.      - s  不顯示錯誤信息,通常與- q 并用.      - v  顯示不匹配模式的行行為模式:      讀取命令行上知名的每個文件.如果匹配查找模式的行時,將它顯示出來.檔知名多個文件時, grep 會在每一行前面加上文件名與一個冒號.默認使用 BRE.警告:     你可以使用多個-d 與 -f 選項,建立要查找的模式列表.

正則表達式

正則表達式是一種表示方式,讓你可以查找匹配特定準則的文本.此表示法讓你可以寫一個表達式,選定或匹配多個數據字符串.從根本上看,正則表達式是由兩個基本組成部分所建立:一般字符與特殊字符.一般字符指的是任何沒有特殊意義的字符;某些情況下,特殊字符也可以視為一般字符,特殊字符常稱為元字符(metacharacter,簡稱 meta).

除了傳統的 UNIX 正則表達式之外, POSIX 正則表達式還可以做到:

  • 編寫正則表達式,它表示特定于 locale 的字符序列順序和等價字符
  • 編寫正則表達式,而不必關心系統底層的字符集是什么.

POSIX 的正則表達式有兩種:基本正則表達式(BRE)以及擴展正則表達式(ERE).通常 ERE 比 BRE 功能更強大,不過不見得任何情況下都是這樣.正則表達式對程序執行時的 locale 環境相當敏感;方括號表達式里的范圍應避免使用,改用字符集,例如[[: alnum:]]較佳.另外許多 GNU 程序都有額外的 meta 字符.

字符BRE/ERE模式含義
/兩者都可通常用以關閉后續字符的特殊意義.有時則是相反地打開后續字符的特殊意義,例如/(.../)與/{.../}
.兩者都可匹配任何單個的字符,但 NUL 除外.獨立程序也可以不允許匹配換行字符.
*兩者都可匹配在他之前的任何數目(或沒有)的單個字符.以 ERE 而言,此前置字符可以使正則表達式,例如:因為.(點號)表示任一字符,所以.*代表"匹配任意字符的任一長度".以 BRE 來說,*若至于正則表達式的第一個字符,不具任何特殊意義.
^兩者都可匹配緊接著的正則表達式,在行或字符串的起始處. BRE: 僅在正則表達式的開頭處具有此特殊含義; ERE:至于任何位置都具特殊含義
$兩者都可匹配前面的正則表達式,在字符串或行結尾處. BRE: 僅在正則表達式結尾處具特殊含義. ERE:至于任何位置都具有特殊含義.
[...]兩者都可方括號表達式(bracket exPRession),匹配方括號內的任意字符.連字符(-)指的是連續字符的范圍(注意:范圍會因 locale 而有所不同,因此不具可移植性).^符號置于方括號里第一個字符則有反向含義:指的是匹配不在列表內(方括號內)的任何字符.作為首字母的一個連字符或是結束方括號(]),則被視為列表的一部分.所有其他的 meta 字符也列為列表的一部分(也就是:根據其字面上的意義).方括號表達式里可能會含有排序符號
/{n/m}BRE區間表達式(interval expression),匹配在它前面的單個字符重現(occurrences)的次數區間.
/( /)BRE將/( 與/)間的模式存儲在特殊的"保留空間(holding space)".最多可以將9個獨立的子模式(subpattern)存儲在單個模式中.匹配與子模式的文本,可通過轉義序列/1至/9,被重復使用在相同模式里.例如:/( ab/).*1,指的是匹配與 ab 組合的兩次重現,中建科存在任何數目的字符.
/nBRE重復在/(與/)方括號內第 n 個子模式至此點的模式. n 為1至9的數字,1為由左開始.
{n,m}ERE與先前提及的 BRE 的/{n/m}一樣,只不過方括號前沒有反斜杠.
+ERE匹配前面正則表達式的零個或多個實例
?ERE匹配前面正則表達式的零個或一個實例
|ERE匹配于|符號前或后的正則表達式
()ERE匹配于方括號括起來的正則表達式群.

擴展正則表達式

正則表達式的擴展

程序與正則表達式

在文本文件里進行替換

很多 shell 腳本的工作都從通過 grep 或 egrep取出所需的文本開始.正則表達式最初結果,往往就成了要拿來做進一步處理的"原始數據(raw data)".通常文本替換(text substitution)至少需要做一件事,就是將一些字以另一些字代替,或者是刪除匹配航的某個部分.

一般來說,執行文本替換的正確程序應該是 sed---流編輯器(Stream Editor).sed 的設計就是用來以批處理的方式而不是用交互的方式將來編輯文件. sed 存在的目的就在這里.雖然你也可以使用 ed 或者 ex 編輯腳本,但用他們處理會比較麻煩,通常用戶不會記得要存儲原來的文件.

sed 是處理簡單字符串替換的主要工具,大部分的 Shell腳本在使用 sed 時幾乎都是用來做替換的操作."從左邊開始,擴展至最長(longest leftmost)"這個法則描述了匹配的文本在何處匹配以及匹配擴展到多長.

sed語法:      sed [ -n ] 'edition command' [file ...]      sed [ -n ] -e 'editing command'... [ file ...]       sed [ -n ] -f script -file ... [file ...]用途:     為了編輯它的輸入流,將結果生成到標準輸出,而非以交互式編輯器的方式拉編輯文件.雖然 sed 命令很多,能做很復雜的工作,但它常用的還是處理數據流的文本替換,通常作為管道的一部分.主要選項:     -e 'editing command'     將 editing command 使用在輸入數據上.當有多個命令需應用時,就必須使用-e 了.      -f script -file       自  script -file 中讀取編輯命令.當有多個命令需要執行時,該選項相當有用.          -n      不是每個最后已修改結果都正常打印,而是現實以 p 指定(處理過的)行.行為模式:      讀取每個輸入文件的每一行,加入沒有文件的話,則是標準輸入.以每一行來說, sed 會執行每一個應用到輸入航的 editing command.結果會寫到標準輸出(默認狀態下,或是現實以 p 命令及-n 選項).若無-e 或- f 選項,則 sed 會把第一個參數看作是要使用的 editing command.

find /home/tolstoy -type d -print   |  尋找所有目錄sed 's;/home/tolstoy/;/home/lt/;'  |  修改名稱:注意這里使用分號作為定界符sed 's/^/mkdir /'                          |  插入mkdir 命令sh -x                                              以 shell 跟蹤模式執行

上述腳本是講/ home/tolstoy 目錄結構建立一份副本在/home/lt 下(可能是為備份而做的準備).


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最新av在线| 国产精品久久久久久久电影| 亚洲国产毛片完整版| 尤物yw午夜国产精品视频明星| 成人免费视频xnxx.com| 一本色道久久88综合亚洲精品ⅰ| 日韩国产精品一区| 国产精品视频导航| 97超级碰碰碰| 成人啪啪免费看| 尤物精品国产第一福利三区| 日韩免费高清在线观看| 国产一区二区欧美日韩| 精品无人区乱码1区2区3区在线| 亚洲欧美国产日韩中文字幕| 国产精品www网站| 日韩中文字幕欧美| 欧美性猛交xxxx免费看| 操人视频在线观看欧美| 国产精品欧美风情| 国产欧美在线播放| 中文字幕亚洲字幕| 欧美精品电影免费在线观看| 亚洲综合小说区| 中文欧美日本在线资源| 欧美高清videos高潮hd| 国产精品精品视频| 国产精品r级在线| 久久久国产一区二区三区| 国产91精品最新在线播放| 青青在线视频一区二区三区| 91中文在线视频| 亚洲黄页网在线观看| 日韩成人在线视频网站| 国产ts一区二区| 中文字幕日本精品| 亚洲男人天堂九九视频| 91精品国产高清久久久久久久久| 国产欧美精品一区二区三区介绍| 正在播放欧美视频| 国产精品第一页在线| 日韩在线激情视频| 精品人伦一区二区三区蜜桃网站| 一道本无吗dⅴd在线播放一区| 人人爽久久涩噜噜噜网站| 欧美极品美女视频网站在线观看免费| 韩国精品美女www爽爽爽视频| 成人亚洲综合色就1024| 91精品在线播放| 668精品在线视频| 亚洲人成电影网站色…| 九九热视频这里只有精品| 亚洲精品videossex少妇| 久久久中精品2020中文| 成人中心免费视频| 一区二区三区视频免费在线观看| 91免费在线视频| 最新中文字幕亚洲| 欧美天天综合色影久久精品| 在线观看欧美www| 欧美精品18videos性欧| 在线视频中文亚洲| 欧美成人激情视频免费观看| 亚洲美女在线视频| 正在播放国产一区| 国产极品jizzhd欧美| 亚洲午夜精品久久久久久性色| 久久成人人人人精品欧| 国产福利精品av综合导导航| 久久综合国产精品台湾中文娱乐网| 久久人体大胆视频| 色播久久人人爽人人爽人人片视av| 高清一区二区三区四区五区| 成人天堂噜噜噜| 国产精品视频白浆免费视频| 欧美高清性猛交| 91精品国产综合久久香蕉| 国产欧美一区二区三区在线看| 欧美一区二区大胆人体摄影专业网站| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲aa在线观看| 国产精品在线看| 日韩av手机在线| 精品国产乱码久久久久久虫虫漫画| 久久夜色精品国产欧美乱| 欧美野外wwwxxx| 国产亚洲一区精品| 欧美激情在线视频二区| 国产精品久久久久91| 92裸体在线视频网站| 国产99在线|中文| 2019av中文字幕| 欧美老女人在线视频| 亚洲二区在线播放视频| 亚洲人精选亚洲人成在线| 在线观看91久久久久久| 欧美小视频在线观看| 亚洲欧洲午夜一线一品| 国产成人激情小视频| 在线观看久久久久久| 亚洲精品欧美日韩专区| 久久国产精品影视| 国产精品入口免费视频一| y97精品国产97久久久久久| 69国产精品成人在线播放| 欧美精品制服第一页| 欧美日韩成人在线播放| 久久不射电影网| 日韩精品在线影院| 亚洲激情视频在线| 日本欧美一二三区| 有码中文亚洲精品| 日本一欧美一欧美一亚洲视频| 欧美电影免费观看高清| 亚洲成人在线视频播放| 国模gogo一区二区大胆私拍| 国产午夜精品理论片a级探花| 日本成人激情视频| 国产精品久久激情| 国产视频福利一区| 国产精品吹潮在线观看| 国产精品久久久久久久久久99| 性欧美激情精品| 九九九久久国产免费| 91精品国产91久久久久久最新| 久久精品男人天堂| 国产精品久久久999| 日韩av网站大全| 91精品国产综合久久香蕉922| 亚洲石原莉奈一区二区在线观看| 91性高湖久久久久久久久_久久99| 亚洲欧美国产精品专区久久| 亚洲福利视频专区| 成人免费在线视频网址| 亚洲精品美女久久久久| 在线观看中文字幕亚洲| 伊人久久久久久久久久| 亚洲国产精品99久久| 粉嫩av一区二区三区免费野| 欲色天天网综合久久| 狠狠躁夜夜躁久久躁别揉| 国产一区二区色| 日韩在线视频网| 欧美孕妇与黑人孕交| 欧美激情一区二区久久久| 亚洲免费人成在线视频观看| 国产一区二区香蕉| 国产精品第三页| 伊人精品在线观看| 亚洲一区二区日本| 久久久久久网站| 一区二区三区天堂av| 久久综合久久88| 国产va免费精品高清在线观看| 91av视频在线免费观看| 欧美日韩中国免费专区在线看| 亚洲天堂成人在线| 久久久久久久国产精品| 91极品女神在线| 综合欧美国产视频二区| 日本一区二三区好的精华液| 日韩电影免费观看中文字幕| 亚洲人a成www在线影院| 国产综合在线视频|