我很少需要处理脚本,所以我反对对这个问题缺乏了解.
我有一个文件> 500mb的文本,这是很好的切片,但我知道里面有5到10个"坏"部分.部分中的数据可以很容易地被人类评估,我不知道如何在程序中进行.
我选择了一个已知的好价值#Field MyField- 但是如果没有出现这个值,那就#FIELD LOCATION出错了.
文件中两个部分的示例如下所示.第一个是"坏",第二个是"好".
#START Descriptor
#FIELD LOCATION="http://path.to/file/here&Value=FOO&OtherValue=BLAH"
#FIELD AnythingElse
#FIELD MyField="BAR"
#END
#START Descriptor
#FIELD LOCATION="http://path.to/file/here&Value=BAR&OtherValue=BLAH"
#FIELD AnythingElse
#FIELD MyField="BAR"
#END
Run Code Online (Sandbox Code Playgroud)
部分以逻辑方式开始和结束,使用#START和#END
如果#FIELD LOCATION不存在,请转到下一部分
如果#FIELD MyField="BAR"和#FIELD LOCATION不包含BAR,则将此部分中的所有行打印到新文件.
注意 - 澄清#FIELD MyField="BAR"- 这是我通过在构建此文件时获取有关数据的其他信息而放入的检查值(在我的情况下,它是一个语言指示符,例如EN或DE.所以它实际上是#FIELD MyField="EN" 任何其他值在此字段中将被忽略,这不是符合我的条件的记录.
我相信这可以在Awk或Perl中完成,我可以做非常简单的单行,但这超出了我的技能.