using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class FileLocation { public required string Path { get; init; } public required int Line { get; init; } public required int Column { get; init; } public required string Letter { get; init; } }; public static class Program { private static List CreateLocations(string path) { List list = File.ReadAllLines(path) .Where(line => line.Contains("error CS1061: ")) .ToList(); List locations = new List(); foreach (string input in list) { string pattern = "([A-Za-z]:\\\\[^\\\\]+\\\\[^\\\\]+(?:\\\\[^\\\\]+)*\\\\[^\\\\]+\\.cs)\\((\\d+),(\\d+)\\)"; Match match = Regex.Match(input, pattern); if (match.Success) { string str1 = match.Groups[1].Value; string s1 = match.Groups[2].Value; string s2 = match.Groups[3].Value; string str2 = ""; if (input.Contains("'x'에 대한")) str2 = "x"; if (input.Contains("'y'에 대한")) str2 = "y"; if (input.Contains("'z'에 대한")) str2 = "z"; FileLocation fileLocation = new FileLocation() { Path = str1, Line = int.Parse(s1), Column = int.Parse(s2), Letter = str2 }; locations.Add(fileLocation); } } return locations; } private static void Change(FileLocation location) { string[] contents = File.ReadAllLines(location.Path); List list = ((IEnumerable)contents[location.Line - 1].ToCharArray()).Select((Func)(x => x.ToString() ?? "")).ToList(); list[location.Column - 2] = "["; if (location.Letter == "x") list[location.Column - 1] = "0]"; else if (location.Letter == "y") list[location.Column - 1] = "1]"; else if (location.Letter == "z") list[location.Column - 1] = "2]"; string str = string.Join("", (IEnumerable)list); contents[location.Line - 1] = str; File.WriteAllLines(location.Path, contents); } public static void Main(string[] args) { var locations = Program.CreateLocations("../../../../../error.log"); foreach (FileLocation location in locations.DistinctBy(x => x.Path + x.Line)) { Change(location); Console.WriteLine($"{location.Path}({location.Line}:{location.Column})"); } } }