ログファイルから一部を削除

ログファイルから一部を削除

スペースで定義された列(7番目の列:/ user1 / index ...)の一部を削除したいと思います。私のログファイルの例は次のとおりです。

192.xx.xxx - - [07/Apr/2017:14:21:15 +0200] "POST /user1/index.php?m=xxxxx&doajax=do_ajax_request&action=xxxx HTTP/1.1" ...
192.xx.x.xx - - [07/Apr/2017:14:21:15 +0200] "GET /user2/index.php?m=xxxxx&doajax=do_ajax_request&action=xxxxx HTTP/1.1".... 

すべてのユーザーを削除したいです。これはuser1とuser2を意味します。これは、ユーザーに関係のない要求を分析したいからです。

192.xx.xxx - - [07/Apr/2017:14:21:15 +0200] "POST /index.php?m=xxxxx&doajax=do_ajax_request&action=xxxx HTTP/1.1" ...
192.xx.x.xx - - [07/Apr/2017:14:21:15 +0200] "POST /index.php?m=xxxxx&doajax=do_ajax_request&action=xxxxx HTTP/1.1".... 

リクエストを取得するためにこのコマンドを試しましたが(/index.php?m=xxxx)cat /var/log/test.log | {print $ 7} '| awk -F / '{print $3}'私の要求を見つけることができる7番目の列でこの要求を置き換える方法がわかりません。ありがとうございます。

ベストアンサー1

sed 's,POST /[^/]*/,POST /,'  logfile | awk ... 

または、デフォルトのフィールド区切り文字(FS)を使用している場合は、awkスクリプトで

sub ("POST /[^/]*/", "POST /", $7) ; 

おすすめ記事