Objective Cを使用して、ファイル内で(正規表現を使用して)検索と置換を実行する必要があります。
私の現在の解決策は次のようなものです:
NSString *string = [NSString stringWithContentsOfFile:sourceFile encoding:NSStringEncodingConversionAllowLossy error:nil];
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[toFind stringValue] options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:[toReplace stringValue]];
[modifiedString writeToFile:sourceFile atomically:YES]
このソリューションには2つの問題があります。
1-オカレンスの数を置き換えることができません
2-ファイル全体を文字列としてメモリにロードしているため、300MB近くのファイルをロードする場合、これはそれほど高速ではないと思います。
行われた置換の数を取得し、大きなファイルでも良好なパフォーマンスが得られるようにソリューションを最適化するにはどうすればよいですか?
前もって感謝します