[英]Find and replace string in file (macOS bash script)?
I have a log file, like this: 我有一个日志文件,像这样:
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)
And want it like this: 并希望这样:
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)
Tried numerous sed
and awk
alternatives with various error messages. 尝试了许多sed
和awk
替代方案,以及各种错误消息。
Could someone show me a working (macOS 10.14.1) solution? 有人可以告诉我一个可行的(macOS 10.14.1)解决方案吗?
UPDATE: Everything works as expected, after I converted compile.log
to UTF-8 . 更新:我将compile.log
转换为UTF-8后,一切都按预期工作。 Seemingly the windows environment created the log utf-16le
encoded. 似乎Windows环境创建了编码为utf-16le
的日志。
sed 's/C:\\\\Program Files\\\\File.ext/\\/Users\\/user\\/Library\\/Folders\\/Program Files\\/File.ext/g' compile.log > compile-replaced.log
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.