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 に答える