2013-04-09 21 views
0

部分我期待從線數據中提取的幾件事情:我如何提取使用egrep的

bin-66-776-33-22.hero.com - - [17 /倍頻/ 2012:04:16:12 0100] 「GET /intro.txt HTTP/1.0」 「 - 」「英雄/ 2.1(+ http://hero.com/intro.html

的粗體位是我想提取的部分

我當前已經使用

cat file.txt | egrep "^(.*) - .* \[(.*)12" 

不過,我知道這並不能真正看到它的工作和結束位'(.*)12'如何看待太多的東西。

我也想知道這是否會在bash腳本中更好?

回答

2

awk更適合這樣的:

$ awk -F'[[ ]' '{print $1,$5,$8,$10,$11}' file 
bin-66-776-33-22.hero.com 17/oct/2012:04:16:12 /intro.txt 200 25 
+0

謝謝,但只是不是我一直在尋找,在大膽位是我想要提取的,你錯過了一些東西,但我還是謝謝你我我會看到我能用awk做什麼 – user2160949 2013-04-09 11:23:56

+0

我必須在最初的輸入文件中添加一個額外的空格,它將列移動了1個列。你想要的列是'1,5,8,10,11' http:// ideone .com/Kngw2d – 2013-04-09 11:55:22

+0

有沒有辦法做正則表達式?使用Bash? – user2160949 2013-04-10 10:20:35