linux合并多個(gè)文件為一個(gè) awk可以捕獲并引用正則表達(dá)式的分組嗎?
awk可以捕獲并引用正則表達(dá)式的分組嗎?就是這樣。例如,以下示例myexample.txt文件123456789-p491666#########執(zhí)行以下awk命令,自定義內(nèi)部變量subar捕獲完全匹
awk可以捕獲并引用正則表達(dá)式的分組嗎?
就是這樣。
例如,以下示例myexample.txt文件
123456789-p491666#########執(zhí)行以下awk命令,自定義內(nèi)部變量subar捕獲完全匹配和子匹配的內(nèi)容,
################################## myexample.txt文件
太棒了
subar[0]是整條正則表達(dá)式(整行)匹配的內(nèi)容
subar[1]是第一個(gè)括號(hào)中匹配的內(nèi)容,即第一個(gè)子匹配;
如果正則表達(dá)式中有多對(duì)括號(hào),相應(yīng)的下標(biāo)用于subar變量以獲得子匹配;
subar[2]。。。第二個(gè)子匹配
subarr[3]第三個(gè)子匹配
…
依此類(lèi)推
當(dāng)然:
awk內(nèi)置字符串函數(shù)
gsub(R,s)在整個(gè)$0中用s代替R
gsub(R,s,t)在整個(gè)t中用s代替R
索引(s,t) 返回字符串t在S中的第一個(gè)位置
length(S)返回S length
match(S,R)測(cè)試S是否包含與R匹配的字符串
拆分(S,a,F(xiàn)S)在FS中,S被分成序列a
Sprint(FMT,exp)返回FMT格式的exp
sub(R,S)用$0中最左邊的子字符串替換S
substr(S,P)返回字符串s中從P開(kāi)始的后綴
substr(s,P,n)返回字符串s中從P開(kāi)始的后綴,長(zhǎng)度為n,并詳細(xì)說(shuō)明每個(gè)函數(shù)的用法。
Gensub(a,B,C[,D])全局替換,匹配常規(guī)a,替換為B,C為指定的替換目標(biāo)是匹配的次數(shù),D為指定的替換目標(biāo)是哪個(gè)字段,如$1,$2,如果沒(méi)有D表示$0,則返回值為替換后目標(biāo)的內(nèi)容(不替換或返回原始)目標(biāo)內(nèi)容),不同于sub和gsub,替換后目標(biāo)內(nèi)容不變。
Gensub(/123/,“x”,1,$1)用字符x替換$1中第一個(gè)匹配的123,返回值是替換$1后的內(nèi)容,并且$1的內(nèi)容沒(méi)有改變
Gensub(/a(*)B/,“1”,1)返回值是第一對(duì)匹配規(guī)則()中的內(nèi)容
Gensub(/a(*)B(*)C/,“2”,1)返回值是第二對(duì)匹配正則表達(dá)式()