2011-01-07 73 views
1

您好,我有一個文件讓pattern.txtSED/AWK/grep命令來刪除除在文本文件中匹配模式的每一件事

包含

模式1

模式2

pattern3

pattern4

另一個文本文件let(complex.txt)

所包含的行作爲

路徑:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX, '模式1/2/3/4')XXXXXXXXXXXX

路徑:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX, 'PATTERN1/2/3/4')XXXXXXXXXXXX

路徑:XXXXXXXXXXXXXXXXXXXXXXXXXX(XXXXXXXXX, 'PATTERN1/2/3/4')XXXXXXXXXX

現在概率是:::我有通過匹配pattern.txt到complex.txt得到另一個文件filter.txt其將包含一行

路徑:模式1/2/3/4 .....

我想......但我沒有得到....

有人可以幫助....在進階感謝...

回答

2

哪種類型的正則表達式(Basic,extended,perl?)包含pattern.txt?

如果擴展的,只是用awk:

awk ' 
    FNR==NR{ 
     patterns[$0]++; 
     next; 
    } 
    { 
     for (el in patterns) 
      if (match($0,el)) { 
       print $1 substr($0,RSTART,RLENGTH); 
       next; 
      } 
    }' pattern.txt complex.txt >filter.txt 

上面的代碼依賴於「路徑:」之間的空間和在complex.txt該行的其餘部分。

相關問題