04_03_管理及IO重定向04_04_grep及正則表達(dá)式


管理及IO重定向

輸入設(shè)備/輸出設(shè)備,程序,控制器,運算器,存儲器;

地址總線:內(nèi)存尋址;

數(shù)據(jù)總線:傳輸數(shù)據(jù)

控制總線:控制指令

寄存器:cpu暫時存儲器

系統(tǒng)設(shè)定:

1、默認(rèn)輸出設(shè)備:標(biāo)準(zhǔn)輸出STDOUT(顯示器)

2、默認(rèn)輸入設(shè)備:標(biāo)準(zhǔn)輸入STDIN(鍵盤)

3、標(biāo)準(zhǔn)錯誤輸出STDERR(顯示器)

I/O重定向:

>:標(biāo)準(zhǔn)輸出重定向,覆蓋輸出,原有內(nèi)容會被覆蓋;

>>:追加輸出,保留原有文件內(nèi)容;

>|:覆蓋輸出(強制輸出,set命令一樣無效);

&|:重定向標(biāo)準(zhǔn)輸出或錯誤輸出至同一文件;

2>:錯誤輸出重定向,覆蓋輸出;

2>>:追加錯誤輸出;

<:輸入重定向;

<<:生成文檔,文檔終止詞 ,使用 << 命令從鍵盤把多行重導(dǎo)向給STDIN,直到 終止詞 位置的所有文本都發(fā)給STDIN,例如:

set:命令,設(shè)定功能,能設(shè)定bash的功能開關(guān):

????????-c:如果文件已存在,禁止使用覆蓋重定向;

????????+c:關(guān)閉功能,允許覆蓋;

管道:

前一個命令的輸出,作為后一個命令的輸入,用豎杠 | 表示

tee:命令,讀取標(biāo)準(zhǔn)輸入到標(biāo)準(zhǔn)輸出和文件中,可與管道命令配合使用;

? ? ? ? ?-a:在原有基礎(chǔ)上追加輸出


grep及正則表達(dá)式

? ? ? ? 在linux中我們會有文本查找以及文本檢索的需要,grep命令就是用于文本檢索的,可以根據(jù)模式去搜索文本,并將符合模式的文本行顯示出來。

模式:pattern,文本字符和正則表達(dá)式的元字符(元字符是指那些在正則表達(dá)式中具有特殊意義的專用字符)組合而成的匹配條件。

grep ? ?選項 ? ?模式 ? ?文件

? ? ? ? -i ? ? ? ? ? ?忽略大小寫

? ? ? ? --color????高亮區(qū)分

? ? ? ? -v ? ? ? ? ? ?顯示無匹配信息

? ? ? ? -o ? ? ? ? ? 只顯示被模式匹配到的字符串

正則表達(dá)式(默認(rèn)貪婪模式):

.?? ??:表示匹配任意單個字符;

*? ? ?:匹配其前面的字符任意次,例如匹配a字母任意次:

.*? ? :匹配任意長度任意字符;

? ? :匹配其前面的字符一次或零次,一般在使用?的時候需要在其前面使用轉(zhuǎn)義符\;

{m,n}:匹配其前面的字符至少m次,至多n次;

位置錨定:

^ ? ?:錨定行首,表示該符號后的任意字符串,必須出現(xiàn)在行首;

$ ? ?:錨定行尾,表示改符號前的任意字符串,必須出現(xiàn)在行尾;

^$ ? :匹配空白行;

[] ? ? :匹配指定范圍內(nèi)的任意單個字符,如[a-z]表示匹配一個小寫字母;

[^] ? ?:匹配指定范圍外的任意單個字符,如[^a-z]表示匹配除小寫字母外的一個字符;

錨定詞首和詞尾:

\< ? ?:其后面的任意字符必須作為單詞首部出現(xiàn);

\> ? ?:其前面的任意字符必須作為單詞尾部出現(xiàn);

分組:

使用()對內(nèi)容進行分組,將其中內(nèi)容作為一個整體匹配;


注:幾個常用的非貪婪匹配Pattern

*? 重復(fù)任意次,但盡可能少重復(fù)

+? 重復(fù)一次貨更多次,但盡可能少重復(fù)

?? 重復(fù)0次或1次,但盡可能少重復(fù)

{n, m}? 重復(fù)n到m次,但盡可能少重復(fù)

{n,}? 重復(fù)n次以上,但盡可能少重復(fù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容