我正在尝试根据带有双引号的字符串模式过滤猪的输入。
例如,假设input.txt有
field1="value1" field2="value2" field1="value1" field2="val2"
我想过滤出具有field2 =" value2"的行。所以,我运行以下脚本
A = LOAD 'input.txt' AS line:chararray;
B = FILTER A BY line MATCHES '.*field2="value2".*';
DUMP B;
以上代码段会抛出0条记录。如果我没有给出结尾的双引号,那就可以了。
B = FILTER A BY line MATCHES '.*field2="value2.*';
我很想知道前者为什么不起作用。
答案 0 :(得分:1)
尝试使用escape chacacter作为引号:
A = LOAD 'input.txt' AS line:chararray;
B = FILTER A BY line MATCHES '.*field2=\\"value2\\".*';
DUMP B;