我有一个日志文件,如下所示:
compile.log
C:\Program Files\File.ext(25,10) : error <ERROR_CODE>: <ERROR_MESSAGE>
C:\Program Files\File.ext(36,13) : error <ERROR_CODE>: <ERROR_MESSAGE>
C:\Program Files\File.ext(41,51) : warning <WARNING>: <WARNING>
C:\Program Files\File.ext(64,55) : error <ERROR_CODE>: <ERROR_MESSAGE>
: information: result 3 error(s), 1 warning(s)
并希望这样:
compile.log
/Users/user/Library/Folders/Program Files/File.ext(25,10) : error <ERROR_CODE>: <ERROR_MESSAGE>
/Users/user/Library/Folders/Program Files/File.ext(36,13) : error <ERROR_CODE>: <ERROR_MESSAGE>
/Users/user/Library/Folders/Program Files/File.ext(41,51) : warning <WARNING>: <WARNING>
/Users/user/Library/Folders/Program Files/File.ext(64,55) : error <ERROR_CODE>: <ERROR_MESSAGE>
: information: result 3 error(s), 1 warning(s)
尝试了多种错误信息的众多sed
和awk
替代方案。
有人可以告诉我一个可行的(macOS 10.14.1)解决方案吗?
更新:我将compile.log
转换为UTF-8 后,一切正常。似乎Windows环境创建了utf-16le
编码的日志。
答案 0 :(得分:1)
sed 's/C:\\Program Files\\File.ext/\/Users\/user\/Library\/Folders\/Program Files\/File.ext/g' compile.log > compile-replaced.log