0

我希望从一行数据中提取一些东西:

bin-66-776-33-22.hero.com - - [ 17/oct/2012:04:16:12 +0100] "GET /intro.txt http/1.0" 200 25 "-" "hero/2.1 ( + http://hero.com/intro.html

粗体部分是我要提取的部分

我目前一直在使用

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

然而,我知道这一点,并不能真正看到它是如何工作的,最后一点'(.*)12'看起来太多了。

我还想知道这在 bash 脚本中是否会更好?

4

1 回答 1

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
于 2013-04-09T10:38:09.287 回答