0

次のような行のログファイルがあります。

07:44:24||||234.234.234.234|123.123.123.123|www.website.pl/some,site.html|a:0:{}

www.website.pl/some,site.htmlすべての行からのみ取得するにはどうすればよいですか?

これは「sed」または他のコマンドで実行できますか?

4

3 に答える 3

2

Cutは、区切り文字とフィールドの選択もサポートしています。

$ cut -d\| -f7
07:44:24||||234.234.234.234|123.123.123.123|www.website.pl/some,site.html|a:0:{}
www.website.pl/some,site.html
于 2012-05-22T06:57:08.447 に答える
1

はい、awkで。

でファイルを処理するだけです

awk -F '|' '{print $7}'

サンプル行の小さなトランスクリプト:

$ echo '07:44:24||||234.234.234.234|123.123.123.123|www.website.pl/some,site.html|a:0:{}' | awk -F '|' '{print $7}'
www.website.pl/some,site.html

警告これは、デリミタに使用されるパイプを除いて、ファイルに他のパイプがないことを前提としています。

于 2012-05-22T06:44:27.533 に答える
0

これはあなたのために働くかもしれません:

echo '07:44:24||||234.234.234.234|123.123.123.123|www.website.pl/some,site.html|a:0:{}'|
sed 's/^\(\([^|]*\)|\)\{7\}.*/\2/'
www.website.pl/some,site.html

または、すべてのサイトが始まる場合www

echo '07:44:24||||234.234.234.234|123.123.123.123|www.website.pl/some,site.html|a:0:{}'|
sed 's/.*\(www[^|]*\).*/\1/'
www.website.pl/some,site.html
于 2012-05-22T07:01:47.843 に答える