2010-07-12 53 views
1

可以說一個目錄有兩個文件。以下是內容grep正則表達式:從目錄中的所有文件中提取模式

FILE1.TXT

tagstart random string tagend 

tagstart random string tagend 

FILE2.TXT

tagstart random string tagend 

tagstart random string tagend 

我希望到grep的目錄,並提取具有以下模式的行

tagstart <any string> tagend 

我也想將輸出管道輸送到另一個文件。基本上grep命令將導致這樣

out.txt

tagstart random string tagend 

tagstart random string tagend 

tagstart random string tagend 

tagstart random string tagend 
+0

您的模式與您的文件內容完全不符 - 您能澄清一下您的問題嗎? – 2010-07-12 16:27:37

+0

正則表達式很少是解析xml的好方法。 你有沒有想過像'一個兩個一個'?你想從這樣的輸入中得到什麼樣的結果? – 2010-07-12 16:30:17

+0

基本上我想提取所有在標籤的開始和結束之間有任何字符串的標籤發生 – rakeshr 2010-07-12 16:31:56

回答

1

FILE1.TXT的輸出文件:

# This is the file nr.1 
tagstart 123 tagend 
tagstart abc tagend 
kill tagstart def tagend kenny 

FILE2.TXT:

# This is the file nr.2 
tagstart 123 tagend 
tagstart abc tagend 
kill tagstart xxx tagend kenny 

該命令將提取標籤及其附件字符串:

cat file1.txt file2.txt | grep -o -E "tagstart(.*?)tagend" > output.txt 

output.txt中:

tagstart 123 tagend 
tagstart abc tagend 
tagstart def tagend 
tagstart 123 tagend 
tagstart abc tagend 
tagstart xxx tagend 

爲您的樂趣額外的cookie:

此命令會做同樣的事情,但將只顯示排序唯一的記錄,他們的出現(統計用):

sort file1.txt file2.txt | grep -o -E "tagstart(.*?)tagend" | uniq -c | \ 
awk '{print $2" "$3" "$4" : "$1}' > output.txt 

output.txt:

tagstart 123 tagend : 2 
tagstart abc tagend : 2 
tagstart def tagend : 1 
tagstart xxx tagend : 1 
+0

之間的任何字符串,日誌文件可能還有其他不需要的信息。讓我更具體一些。我正在尋找一個正則表達式,將提取標籤之間的任何字符串 – rakeshr 2010-07-12 16:44:08

+0

我已經更新了我的答案。 – 2010-07-12 17:06:08

+0

謝謝Andrejs。一個輕微的扭曲它 如果FILE1.TXT結束 後有這個 開始tagstart XYZ tagend廢話之前的一些廢話我還是想只提取「tagstart XYZ tagend」 – rakeshr 2010-07-12 17:22:46

0
grep 'tagstart random string tagend' file1.txt file2.txt > out.txt 
+0

Jim,我的問題之前並不清楚。我編輯了這個問題。我正在尋找的模式是可能發生在標籤 – rakeshr 2010-07-12 16:33:49

0

正則表達式很少是解析xml的好方法。你有沒有想過像tagstart one tagstart two tagend one tagend這樣的情況?

tagstart one tagstart two tagend one tagend

tagstart one tagstart two tagend

tagstart two tagend

tagstart two tagend one tagend
都滿足您的條件。你想要哪些?

+0

謝謝kaestur。我的日誌文件沒有這樣的標籤結構。我正在尋找一個正則表達式,將提取標籤之間的任何字符串 – rakeshr 2010-07-12 16:45:42