Найти и заменить строку в файле (скрипт macOS bash)? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть файл журнала, например:

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 в кодировке.

1 Ответ

1 голос
/ 21 июня 2019

sed 's/C:\\Program Files\\File.ext/\/Users\/user\/Library\/Folders\/Program Files\/File.ext/g' compile.log > compile-replaced.log

...