我正在尝试在模式之间进行搜索。我知道如果只出现一次,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>
我正在尝试在Iowa
和Montana
之间获取内容。
所以,我做sed -ne '/Iowa/,/Montana/p
$file
并看到如下结果:
Iowa<br>
data1<br>
data2<br>
Montana<br>
Iowa<br>
data3<br>
data4<br>
Arizona<br>
junk5<br>
junk6<br>
不确定为什么会打印Iowa - Arizona
以及更长时间。有没有办法在Iowa
和Montana
之间打印内容?
作为一种临时解决方法,我打印全部并且第一次出现。
答案 0 :(得分:0)
如果你想使用perl,这个单线程可以完成这项任务:
perl -ne 'last if /Montana/; print if $i; $i++ if /Iowa/' $file
输出:
data1
data2
答案 1 :(得分:0)
尝试触发器操作符
perl -ne 'next if (1 ../Iowa/); last if(/Montana/); print;' input.txt