Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在具有多个引用的文件中的模式之间搜索_Regex_Perl_Sed - Fatal编程技术网

Regex 在具有多个引用的文件中的模式之间搜索

Regex 在具有多个引用的文件中的模式之间搜索,regex,perl,sed,Regex,Perl,Sed,我试图在模式之间进行搜索。我知道如果只发生一次,sed就会这样做 以下是文件: Iowa<br> data1<br> data2<br> Montana<br> junk1<br> junk2<br> junk3<br> Iowa<br> data3<br> data4<br> Arizona<br> junk5<br> junk6<br>

我试图在模式之间进行搜索。我知道如果只发生一次,sed就会这样做

以下是文件:

Iowa<br>
data1<br>
data2<br>
Montana<br>
junk1<br>
junk2<br>
junk3<br>
Iowa<br>
data3<br>
data4<br>
Arizona<br>
junk5<br>
junk6<br>
不知道为什么它会打印爱荷华州-亚利桑那州及更远的地区。有没有办法只在爱荷华州和蒙大拿州之间打印内容


作为一种临时解决方法,我将打印所有内容并进行第一次引用。

如果您想使用perl,则此一行程序将完成以下工作:

perl-ne'last if/Montana/;如果$i,则打印$i++if/Iowa/'$file

输出:

data1
data2

试试触发器操作符

perl -ne 'next if (1 ../Iowa/); last if(/Montana/); print;' input.txt
最后一个awk答案()适合。。。还建议添加您的预期输出,以了解您是否需要
爱荷华州
蒙大拿州
也在输出中或仅在它们之间的行中。。。另外,请明确您的输入是否可以包含多个或仅一个
Iowa…Montana
perl -ne 'next if (1 ../Iowa/); last if(/Montana/); print;' input.txt