如何从文本中提取数据的特定部分(块)

时间:2019-07-24 22:12:32

标签: julia

我有一个很大的文本文件,其中包含几个数据块,其中各块用{}分隔。我需要文件中的两部分数据才能使用。

我试图找到目标数据的标题(例如“ job”),以便在接下来的}之前读取以下行,但我在第一步中失败了:

open("file.txt","r") do f
    for j in eachline(f) 
    if "job" in j
        return true
        return false
    end
end
end

所以我期待任何帮助。

3 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。这是使用单个循环的一种可能性:

open("file.txt") do f
    job_found = false
    while true
        line = readline(f)
        if job_found
            occursin("}", line) && break
            println(line)
        else
            job_found = occursin("job", line)
        end 
    end
end

此代码将在"job"中包含line字符串之后打印所有行,直到某些"}"中包含line

这是您想要的吗?

答案 1 :(得分:0)

您可以使用以下命令进行操作:

sed

awk

但是最好发送您的文本以更好地检查文本或获取该示例

答案 2 :(得分:0)

通过将awk或sed命令与它们的开关一起使用,您会看到更好的结果,因为我没有示例文本来帮助您更好