sed方法進行模式串匹配

2021-07-24 21:45:16 字數 693 閱讀 4080

需要從乙個檔案中逐行的資料中提取出符合要求的子串,比如提取其中taga*****tagb之間的字元

cat  my.log | sed 's/\(.*\)taga\(.*\)tagb\(.*\)/\2/g'
可以搭配grep先進行一次行過濾,在之後,再進行一次的子串提取:

s: 表示替換命令

(.*)taga : 表示taga前的內容

taga(.*)tagb:表示taga和tagb之間的內容

tagb(.*):表示tagb後的內容

\2: 表示第二對括號裡面的內容

括號裡的表示式匹配的內容,可以用\1,\2等進行引用,第n個括號對內的內容,就用\n引用。

這個命令的意思是:

用\2代表的第二個括號的內容(即taga好tagb之間的內容)去替換整個字串,這樣就得到了我們所需要的子字串了。

grep 'id=myid'  my.log | sed 's/\(.*\)taga\(.*\)tagb\(.*\)/\2/g'
採用awk和match的方案:通過match匹配出taga的位置和tagb的位置,分別即為start1和start2,再通過substr進行字串的擷取,從而實現預期子串的提取。**如下:

cat  my.log | awk ''

串的模式匹配

最近在學 vc include stdafx.h include include define max size 1000 串的模式匹配 功能 找出str2字串在str1字串中第一次出現的位置 不包括串結束符 返回 該位置的序號 環境 visual c 2008 注意 1.此為樸素的模式匹配演算法,...

串的模式匹配

以前每次看到字串匹配,一律跳過,今天耐著性子研究了下,依舊是半混沌狀態,先整理放在這,以備後用。這篇文章幫助很大,樸素匹配演算法 kmp演算法,收藏先。1.樸素匹配演算法 int patternmatch common const char pstring,const char ppattern i...

串的模式匹配

子串的定位操作通常稱作串的模式匹配。index s,t,pos t被稱為模式串。直觀演算法 int index string s,string t,int pos else if j lent return i lent else return 0 直觀演算法很簡單,如果字串中當個字元匹配,主串指標...