Проблема с вашим кодом в том, что строки неизменны в Юлии, поэтому replace
не изменяет строку, а создает новую.
Вот мое предложение о том, как бы я написал ваш код (обратите внимание на некоторые другие небольшиеразличия в моей реализации, например, count
гарантирует, что мы делаем только одну подстановку, так как в общем случае в одной строке может быть несколько вхождений шаблона; также startswith
в общем случае должен быть быстрее, чем occursin
в вашем случае использования):
req_id = "id=\"456-78-901-23\""
id_pattern = "id="
lines = readlines("idx.txt")
open("idx.txt", "w") do ids_file
for line in lines
if startswith(line, "#$req_id")
println(ids_file, replace(line, "#$req_id" => req_id, count=1))
# or even:
# println(ids_file, chop(line, head=1, tail=0))
elseif startswith(line, id_pattern)
println(ids_file, replace(line, "id" => "#id", count=1))
# or even:
# println(ids_file, "#"*line)
else
println(ids_file, line)
end
end
end