0
私は怒鳴るようにログファイルをHAVA:シェルを使ってファイルを行単位でフィルタリングする方法は?
5082 //open_api/user/get_user_info
5074 /user/get_user_idCard_info?passportId=YRD1412538757&viewSource=02
5029 /user/getuserinfo?passportId=YRD1412538757
4706 /user/getuserinfo?passportId=YRD1507000030516
4611 /user/get_user_idCard_info?passportId=YRD1507000030516&viewSource=02
4040 /salesloan/update_draw_bank
出力は次のようにする必要があります:各行は、このURLが呼び出される番号である前に
5082 //open_api/user/get_user_info
9685 /user/get_user_idCard_info
9735 /user/getuserinfo
4040 /salesloan/update_draw_bank
数。今度は、上記のように、 '/repay/query_need_repay_data.action'というURLが呼び出された回数だけカウントしたい場合など、各url(httpリクエストを取得するparamsなし)が何回要求されたかを調べたいと思います。今私は、行をフィルタ処理して処理するためにjavaを使用していますが、200Mバイトのファイルではすでに4時間かかっていますが、どの方法で作業をすばやく行うことができますか?
のJavaコード:事前に
public static void main(String[] args) throws IOException {
String source = "/Users/leo/logs/p2pservice/access/a2.output";
String target = "/Users/leo/logs/p2pservice/access/targetUrls";
File targetFile = new File(target);
String splinter = "\\?";
List<String> strings = Files.readLines(new File(source), Charsets.UTF_8);
for (String string : strings) {
if (string.contains("?")) {
String[] split = string.split(splinter);
Files.append(string.split(splinter)[0].toString() + "\n", targetFile, Charsets.UTF_8);
} else {
Files.append(string + "\n", targetFile, Charsets.UTF_8);
}
}
}
感謝。
、それは122333 /repay/query_need_repay_data.action – leo
理由122333のようにすべきですか?私が最初の列を合計すると、私は14Kくらいです。 – fedorqui
はい、あなたは14歳になるはずです、私は数えませんでした。ありがとう。 – leo