使用sed将文件的子集从行号打印到正则表达式的第一个匹配

时间:2015-05-09 08:13:12

标签: regex sed

我想打印一个特定行号的文件内容,直到第一次出现一个模式并立即停止搜索&打印。我试过这个:

sed -n '2,/{p; :loop n; p; /pattern/q; b loop}'

但没有成功。怎么能实现这一目标? 谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用sed

sed -n '2,/pattern/p' file

或者这个awk命令:

awk 'NR==2{p=1} p; /pattern/{exit}' file

答案 1 :(得分:0)

使用GNU sed:在包含行的模式后停止:

sed -n '2,/pattern/{p;/pattern/q;} file

答案 2 :(得分:0)

这可能适合你(GNU sed):

<span id="countdown"></span>
<script>

var timer = 5;
var counter = document.getElementById("countdown");

function countdown(target)
{
counter.innerHTML = timer--;
if (timer >= 0)
{
    setTimeout(function () {
        countdown(target);
    }, 1000);
}
else
{
    // Redirect the inactive user to the homepage

    console.log(target); // Outputs "undefined" after 5 seconds


        window.location.href = target;

}
};

var target = "/account/";
countdown(target);
</script>