Only print output after finding pattern The Next CEO of Stack OverflowHow to sed chunks text from a stream of files from findprint output to 3 separate columnsHow to print to the left and right of already printed outputprint characters repetitively using asterisk symbol in bashformat command output with variable and fixed spaceGet the output in a formatted wayHow to print $STR1 and $STR2 - not their contents - into a file?Print variable with backslashes in dashecho for Print outputBest way to create table-like CLI display in Bash?print a column with the desire format output

Does Germany produce more waste than the US?

How badly should I try to prevent a user from XSSing themselves?

Free fall ellipse or parabola?

Another proof that dividing by 0 does not exist -- is it right?

How can a day be of 24 hours?

Upgrading From a 9 Speed Sora Derailleur?

Is it okay to majorly distort historical facts while writing a fiction story?

Why did early computer designers eschew integers?

Shortening a title without changing its meaning

Why doesn't Shulchan Aruch include the laws of destroying fruit trees?

Is it reasonable to ask other researchers to send me their previous grant applications?

Can this transistor (2N2222) take 6 V on emitter-base? Am I reading the datasheet incorrectly?

Masking layers by a vector polygon layer in QGIS

How should I connect my cat5 cable to connectors having an orange-green line?

How to coordinate airplane tickets?

Is it correct to say moon starry nights?

Early programmable calculators with RS-232

Ising model simulation

Prodigo = pro + ago?

Direct Implications Between USA and UK in Event of No-Deal Brexit

Why can't we say "I have been having a dog"?

What did the word "leisure" mean in late 18th Century usage?

How exploitable/balanced is this homebrew spell: Spell Permanency?

How dangerous is XSS



Only print output after finding pattern



The Next CEO of Stack OverflowHow to sed chunks text from a stream of files from findprint output to 3 separate columnsHow to print to the left and right of already printed outputprint characters repetitively using asterisk symbol in bashformat command output with variable and fixed spaceGet the output in a formatted wayHow to print $STR1 and $STR2 - not their contents - into a file?Print variable with backslashes in dashecho for Print outputBest way to create table-like CLI display in Bash?print a column with the desire format output










13















There's a script (let's call it echoer) that prints to screen a bunch of information. I'd like to be able to only see lines after a pattern is found.



I imagine the usage of a solution to look something like



echoer | solution_command <pattern>


Ideally pattern would be a regular expression, but hard value strings would be enough for me.










share|improve this question









New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • So pattern can be multiple strings?

    – Inian
    Mar 28 at 9:41











  • A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

    – terdon
    Mar 28 at 9:47











  • @Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

    – user23146
    Mar 28 at 10:03















13















There's a script (let's call it echoer) that prints to screen a bunch of information. I'd like to be able to only see lines after a pattern is found.



I imagine the usage of a solution to look something like



echoer | solution_command <pattern>


Ideally pattern would be a regular expression, but hard value strings would be enough for me.










share|improve this question









New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • So pattern can be multiple strings?

    – Inian
    Mar 28 at 9:41











  • A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

    – terdon
    Mar 28 at 9:47











  • @Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

    – user23146
    Mar 28 at 10:03













13












13








13


4






There's a script (let's call it echoer) that prints to screen a bunch of information. I'd like to be able to only see lines after a pattern is found.



I imagine the usage of a solution to look something like



echoer | solution_command <pattern>


Ideally pattern would be a regular expression, but hard value strings would be enough for me.










share|improve this question









New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












There's a script (let's call it echoer) that prints to screen a bunch of information. I'd like to be able to only see lines after a pattern is found.



I imagine the usage of a solution to look something like



echoer | solution_command <pattern>


Ideally pattern would be a regular expression, but hard value strings would be enough for me.







echo printf






share|improve this question









New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Mar 28 at 10:02







user23146













New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Mar 28 at 9:39









user23146user23146

684




684




New contributor




user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






user23146 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • So pattern can be multiple strings?

    – Inian
    Mar 28 at 9:41











  • A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

    – terdon
    Mar 28 at 9:47











  • @Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

    – user23146
    Mar 28 at 10:03

















  • So pattern can be multiple strings?

    – Inian
    Mar 28 at 9:41











  • A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

    – terdon
    Mar 28 at 9:47











  • @Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

    – user23146
    Mar 28 at 10:03
















So pattern can be multiple strings?

– Inian
Mar 28 at 9:41





So pattern can be multiple strings?

– Inian
Mar 28 at 9:41













A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

– terdon
Mar 28 at 9:47





A glob? Do you mean a regular expression? Globs only make sense for file name expansions.

– terdon
Mar 28 at 9:47













@Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

– user23146
Mar 28 at 10:03





@Inian I'm not sure I understand the question. Do you mean to ask if I want this to work with disjunctions?

– user23146
Mar 28 at 10:03










6 Answers
6






active

oldest

votes


















20














AWK can do this with pattern ranges, which allows the use of any regular expression:



echoer | awk '/pattern/,0'


will print echoer’s output starting with the first line matching pattern.



AWK is pattern-based, and is typically used with a “if this pattern matches, do this” type of approach. “This pattern” can be a range of patterns, defined as “when this pattern matches, start doing this, until this other pattern matches”; this is specified by writing two patterns separated by a comma, as above. Patterns can be text matches, as in /pattern/, where the current line is checked against the pattern, interpreted as a regular expression; they can also be general expressions, evaluated for every line, and considered to match if their result is non-zero or non-empty.



In AWK, the default action is to print the current line.



Putting all this together, awk '/pattern/,0' looks for lines matching pattern, and once it finds one, applies the default action to all lines until the 0 condition matches (is non-zero). awk '/pattern/,""' would work too.



The Gawk manual goes into much more detail.






share|improve this answer




















  • 3





    I was not aware of the range semantics with zero as the end of the range. Thanks!

    – Kusalananda
    Mar 28 at 10:06











  • @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

    – user23146
    Mar 28 at 10:32











  • @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

    – Stephen Kitt
    Mar 28 at 10:46


















6














The obligatory sed equivalent of @StephenKitt's awk one:



sed '/pattern/,$!d'


pattern there is interpreted as a Basic Regular Expression like in grep (as opposed to Extended Regular Expression in awk/egrep/grep -E). Some sed implementations have a -E (BSD, ast, recent GNU/busybox, soon POSIX) or -r (GNU, ssed, busybox, some recent BSD) option to make it Extended Regular Expressions instead and some have -P (ast) or -R (ssed) to make it a perl-like regular expression.



With perl:



perl -ne 'print if /pattern/ .. undef'





share|improve this answer






























    4














    with GNU and *BSD grep:



    grep -A1000000000 pattern file


    Unless your file has more than 1M lines, that's it.






    share|improve this answer






























      0














      If you're using a pager such as less to view output from the command



      less +pattern





      share|improve this answer






























        0















        awk for lines after (but not including) the first pattern match



        If the line containing the trigger pattern is the equivalent of "CUT HERE", you can omit it from the printed output:



        echoer | awk 'flag ; /pattern/ flag=1 '


        Each line of input runs through two components in the awk code. The first component is flag, which awk interprets as "print the line if the variable flag is nonzero". Since awk variables are 0 by default, this will initially not print anything.



        The second component, /pattern/ flag=1 , sets the flag to 1 as soon as it detects the pattern, and the flag keeps that value for the rest of the run.



        By the time that the pattern is first detected, the opportunity to print that line of input has passed. Any subsequent lines (including additional lines containing the pattern) will print.






        share|improve this answer






























          0














          Bash



          A bit clunky, but it works.



          #!/bin/bash
          found=false
          while IFS= read -r; do
          if $found || [[ $REPLY =~ pattern ]]; then
          found=true
          printf '%sn' "$REPLY"
          fi
          done


          This version relies on cat, but it's easier to understand.



          #!/bin/bash
          while IFS= read -r; do
          if [[ $REPLY =~ pattern ]]; then
          printf '%sn' "$REPLY"
          break
          fi
          done
          cat





          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            user23146 is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509173%2fonly-print-output-after-finding-pattern%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            6 Answers
            6






            active

            oldest

            votes








            6 Answers
            6






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            20














            AWK can do this with pattern ranges, which allows the use of any regular expression:



            echoer | awk '/pattern/,0'


            will print echoer’s output starting with the first line matching pattern.



            AWK is pattern-based, and is typically used with a “if this pattern matches, do this” type of approach. “This pattern” can be a range of patterns, defined as “when this pattern matches, start doing this, until this other pattern matches”; this is specified by writing two patterns separated by a comma, as above. Patterns can be text matches, as in /pattern/, where the current line is checked against the pattern, interpreted as a regular expression; they can also be general expressions, evaluated for every line, and considered to match if their result is non-zero or non-empty.



            In AWK, the default action is to print the current line.



            Putting all this together, awk '/pattern/,0' looks for lines matching pattern, and once it finds one, applies the default action to all lines until the 0 condition matches (is non-zero). awk '/pattern/,""' would work too.



            The Gawk manual goes into much more detail.






            share|improve this answer




















            • 3





              I was not aware of the range semantics with zero as the end of the range. Thanks!

              – Kusalananda
              Mar 28 at 10:06











            • @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

              – user23146
              Mar 28 at 10:32











            • @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

              – Stephen Kitt
              Mar 28 at 10:46















            20














            AWK can do this with pattern ranges, which allows the use of any regular expression:



            echoer | awk '/pattern/,0'


            will print echoer’s output starting with the first line matching pattern.



            AWK is pattern-based, and is typically used with a “if this pattern matches, do this” type of approach. “This pattern” can be a range of patterns, defined as “when this pattern matches, start doing this, until this other pattern matches”; this is specified by writing two patterns separated by a comma, as above. Patterns can be text matches, as in /pattern/, where the current line is checked against the pattern, interpreted as a regular expression; they can also be general expressions, evaluated for every line, and considered to match if their result is non-zero or non-empty.



            In AWK, the default action is to print the current line.



            Putting all this together, awk '/pattern/,0' looks for lines matching pattern, and once it finds one, applies the default action to all lines until the 0 condition matches (is non-zero). awk '/pattern/,""' would work too.



            The Gawk manual goes into much more detail.






            share|improve this answer




















            • 3





              I was not aware of the range semantics with zero as the end of the range. Thanks!

              – Kusalananda
              Mar 28 at 10:06











            • @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

              – user23146
              Mar 28 at 10:32











            • @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

              – Stephen Kitt
              Mar 28 at 10:46













            20












            20








            20







            AWK can do this with pattern ranges, which allows the use of any regular expression:



            echoer | awk '/pattern/,0'


            will print echoer’s output starting with the first line matching pattern.



            AWK is pattern-based, and is typically used with a “if this pattern matches, do this” type of approach. “This pattern” can be a range of patterns, defined as “when this pattern matches, start doing this, until this other pattern matches”; this is specified by writing two patterns separated by a comma, as above. Patterns can be text matches, as in /pattern/, where the current line is checked against the pattern, interpreted as a regular expression; they can also be general expressions, evaluated for every line, and considered to match if their result is non-zero or non-empty.



            In AWK, the default action is to print the current line.



            Putting all this together, awk '/pattern/,0' looks for lines matching pattern, and once it finds one, applies the default action to all lines until the 0 condition matches (is non-zero). awk '/pattern/,""' would work too.



            The Gawk manual goes into much more detail.






            share|improve this answer















            AWK can do this with pattern ranges, which allows the use of any regular expression:



            echoer | awk '/pattern/,0'


            will print echoer’s output starting with the first line matching pattern.



            AWK is pattern-based, and is typically used with a “if this pattern matches, do this” type of approach. “This pattern” can be a range of patterns, defined as “when this pattern matches, start doing this, until this other pattern matches”; this is specified by writing two patterns separated by a comma, as above. Patterns can be text matches, as in /pattern/, where the current line is checked against the pattern, interpreted as a regular expression; they can also be general expressions, evaluated for every line, and considered to match if their result is non-zero or non-empty.



            In AWK, the default action is to print the current line.



            Putting all this together, awk '/pattern/,0' looks for lines matching pattern, and once it finds one, applies the default action to all lines until the 0 condition matches (is non-zero). awk '/pattern/,""' would work too.



            The Gawk manual goes into much more detail.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Mar 28 at 14:24

























            answered Mar 28 at 9:46









            Stephen KittStephen Kitt

            179k24407485




            179k24407485







            • 3





              I was not aware of the range semantics with zero as the end of the range. Thanks!

              – Kusalananda
              Mar 28 at 10:06











            • @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

              – user23146
              Mar 28 at 10:32











            • @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

              – Stephen Kitt
              Mar 28 at 10:46












            • 3





              I was not aware of the range semantics with zero as the end of the range. Thanks!

              – Kusalananda
              Mar 28 at 10:06











            • @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

              – user23146
              Mar 28 at 10:32











            • @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

              – Stephen Kitt
              Mar 28 at 10:46







            3




            3





            I was not aware of the range semantics with zero as the end of the range. Thanks!

            – Kusalananda
            Mar 28 at 10:06





            I was not aware of the range semantics with zero as the end of the range. Thanks!

            – Kusalananda
            Mar 28 at 10:06













            @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

            – user23146
            Mar 28 at 10:32





            @StephenKitt This is great! What if I wanted to print until it matched 0? Would it be /pattern/,/0/? What would the answer look like explicitly writing out the default action?

            – user23146
            Mar 28 at 10:32













            @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

            – Stephen Kitt
            Mar 28 at 10:46





            @user23146 yes, /pattern/,/0/ would print until it found a line (record) containing “0”. Writing the snippet in the answer with an explicit action gives /pattern/,0 print $0 , or equivalently /pattern/,0 print .

            – Stephen Kitt
            Mar 28 at 10:46













            6














            The obligatory sed equivalent of @StephenKitt's awk one:



            sed '/pattern/,$!d'


            pattern there is interpreted as a Basic Regular Expression like in grep (as opposed to Extended Regular Expression in awk/egrep/grep -E). Some sed implementations have a -E (BSD, ast, recent GNU/busybox, soon POSIX) or -r (GNU, ssed, busybox, some recent BSD) option to make it Extended Regular Expressions instead and some have -P (ast) or -R (ssed) to make it a perl-like regular expression.



            With perl:



            perl -ne 'print if /pattern/ .. undef'





            share|improve this answer



























              6














              The obligatory sed equivalent of @StephenKitt's awk one:



              sed '/pattern/,$!d'


              pattern there is interpreted as a Basic Regular Expression like in grep (as opposed to Extended Regular Expression in awk/egrep/grep -E). Some sed implementations have a -E (BSD, ast, recent GNU/busybox, soon POSIX) or -r (GNU, ssed, busybox, some recent BSD) option to make it Extended Regular Expressions instead and some have -P (ast) or -R (ssed) to make it a perl-like regular expression.



              With perl:



              perl -ne 'print if /pattern/ .. undef'





              share|improve this answer

























                6












                6








                6







                The obligatory sed equivalent of @StephenKitt's awk one:



                sed '/pattern/,$!d'


                pattern there is interpreted as a Basic Regular Expression like in grep (as opposed to Extended Regular Expression in awk/egrep/grep -E). Some sed implementations have a -E (BSD, ast, recent GNU/busybox, soon POSIX) or -r (GNU, ssed, busybox, some recent BSD) option to make it Extended Regular Expressions instead and some have -P (ast) or -R (ssed) to make it a perl-like regular expression.



                With perl:



                perl -ne 'print if /pattern/ .. undef'





                share|improve this answer













                The obligatory sed equivalent of @StephenKitt's awk one:



                sed '/pattern/,$!d'


                pattern there is interpreted as a Basic Regular Expression like in grep (as opposed to Extended Regular Expression in awk/egrep/grep -E). Some sed implementations have a -E (BSD, ast, recent GNU/busybox, soon POSIX) or -r (GNU, ssed, busybox, some recent BSD) option to make it Extended Regular Expressions instead and some have -P (ast) or -R (ssed) to make it a perl-like regular expression.



                With perl:



                perl -ne 'print if /pattern/ .. undef'






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 28 at 14:48









                Stéphane ChazelasStéphane Chazelas

                312k57591948




                312k57591948





















                    4














                    with GNU and *BSD grep:



                    grep -A1000000000 pattern file


                    Unless your file has more than 1M lines, that's it.






                    share|improve this answer



























                      4














                      with GNU and *BSD grep:



                      grep -A1000000000 pattern file


                      Unless your file has more than 1M lines, that's it.






                      share|improve this answer

























                        4












                        4








                        4







                        with GNU and *BSD grep:



                        grep -A1000000000 pattern file


                        Unless your file has more than 1M lines, that's it.






                        share|improve this answer













                        with GNU and *BSD grep:



                        grep -A1000000000 pattern file


                        Unless your file has more than 1M lines, that's it.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Mar 28 at 14:55









                        mosvymosvy

                        8,8621833




                        8,8621833





















                            0














                            If you're using a pager such as less to view output from the command



                            less +pattern





                            share|improve this answer



























                              0














                              If you're using a pager such as less to view output from the command



                              less +pattern





                              share|improve this answer

























                                0












                                0








                                0







                                If you're using a pager such as less to view output from the command



                                less +pattern





                                share|improve this answer













                                If you're using a pager such as less to view output from the command



                                less +pattern






                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered Mar 29 at 2:29









                                iruvariruvar

                                12.2k63062




                                12.2k63062





















                                    0















                                    awk for lines after (but not including) the first pattern match



                                    If the line containing the trigger pattern is the equivalent of "CUT HERE", you can omit it from the printed output:



                                    echoer | awk 'flag ; /pattern/ flag=1 '


                                    Each line of input runs through two components in the awk code. The first component is flag, which awk interprets as "print the line if the variable flag is nonzero". Since awk variables are 0 by default, this will initially not print anything.



                                    The second component, /pattern/ flag=1 , sets the flag to 1 as soon as it detects the pattern, and the flag keeps that value for the rest of the run.



                                    By the time that the pattern is first detected, the opportunity to print that line of input has passed. Any subsequent lines (including additional lines containing the pattern) will print.






                                    share|improve this answer



























                                      0















                                      awk for lines after (but not including) the first pattern match



                                      If the line containing the trigger pattern is the equivalent of "CUT HERE", you can omit it from the printed output:



                                      echoer | awk 'flag ; /pattern/ flag=1 '


                                      Each line of input runs through two components in the awk code. The first component is flag, which awk interprets as "print the line if the variable flag is nonzero". Since awk variables are 0 by default, this will initially not print anything.



                                      The second component, /pattern/ flag=1 , sets the flag to 1 as soon as it detects the pattern, and the flag keeps that value for the rest of the run.



                                      By the time that the pattern is first detected, the opportunity to print that line of input has passed. Any subsequent lines (including additional lines containing the pattern) will print.






                                      share|improve this answer

























                                        0












                                        0








                                        0








                                        awk for lines after (but not including) the first pattern match



                                        If the line containing the trigger pattern is the equivalent of "CUT HERE", you can omit it from the printed output:



                                        echoer | awk 'flag ; /pattern/ flag=1 '


                                        Each line of input runs through two components in the awk code. The first component is flag, which awk interprets as "print the line if the variable flag is nonzero". Since awk variables are 0 by default, this will initially not print anything.



                                        The second component, /pattern/ flag=1 , sets the flag to 1 as soon as it detects the pattern, and the flag keeps that value for the rest of the run.



                                        By the time that the pattern is first detected, the opportunity to print that line of input has passed. Any subsequent lines (including additional lines containing the pattern) will print.






                                        share|improve this answer














                                        awk for lines after (but not including) the first pattern match



                                        If the line containing the trigger pattern is the equivalent of "CUT HERE", you can omit it from the printed output:



                                        echoer | awk 'flag ; /pattern/ flag=1 '


                                        Each line of input runs through two components in the awk code. The first component is flag, which awk interprets as "print the line if the variable flag is nonzero". Since awk variables are 0 by default, this will initially not print anything.



                                        The second component, /pattern/ flag=1 , sets the flag to 1 as soon as it detects the pattern, and the flag keeps that value for the rest of the run.



                                        By the time that the pattern is first detected, the opportunity to print that line of input has passed. Any subsequent lines (including additional lines containing the pattern) will print.







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered Mar 29 at 2:53









                                        GaultheriaGaultheria

                                        34214




                                        34214





















                                            0














                                            Bash



                                            A bit clunky, but it works.



                                            #!/bin/bash
                                            found=false
                                            while IFS= read -r; do
                                            if $found || [[ $REPLY =~ pattern ]]; then
                                            found=true
                                            printf '%sn' "$REPLY"
                                            fi
                                            done


                                            This version relies on cat, but it's easier to understand.



                                            #!/bin/bash
                                            while IFS= read -r; do
                                            if [[ $REPLY =~ pattern ]]; then
                                            printf '%sn' "$REPLY"
                                            break
                                            fi
                                            done
                                            cat





                                            share|improve this answer





























                                              0














                                              Bash



                                              A bit clunky, but it works.



                                              #!/bin/bash
                                              found=false
                                              while IFS= read -r; do
                                              if $found || [[ $REPLY =~ pattern ]]; then
                                              found=true
                                              printf '%sn' "$REPLY"
                                              fi
                                              done


                                              This version relies on cat, but it's easier to understand.



                                              #!/bin/bash
                                              while IFS= read -r; do
                                              if [[ $REPLY =~ pattern ]]; then
                                              printf '%sn' "$REPLY"
                                              break
                                              fi
                                              done
                                              cat





                                              share|improve this answer



























                                                0












                                                0








                                                0







                                                Bash



                                                A bit clunky, but it works.



                                                #!/bin/bash
                                                found=false
                                                while IFS= read -r; do
                                                if $found || [[ $REPLY =~ pattern ]]; then
                                                found=true
                                                printf '%sn' "$REPLY"
                                                fi
                                                done


                                                This version relies on cat, but it's easier to understand.



                                                #!/bin/bash
                                                while IFS= read -r; do
                                                if [[ $REPLY =~ pattern ]]; then
                                                printf '%sn' "$REPLY"
                                                break
                                                fi
                                                done
                                                cat





                                                share|improve this answer















                                                Bash



                                                A bit clunky, but it works.



                                                #!/bin/bash
                                                found=false
                                                while IFS= read -r; do
                                                if $found || [[ $REPLY =~ pattern ]]; then
                                                found=true
                                                printf '%sn' "$REPLY"
                                                fi
                                                done


                                                This version relies on cat, but it's easier to understand.



                                                #!/bin/bash
                                                while IFS= read -r; do
                                                if [[ $REPLY =~ pattern ]]; then
                                                printf '%sn' "$REPLY"
                                                break
                                                fi
                                                done
                                                cat






                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited Mar 29 at 2:53

























                                                answered Mar 29 at 2:18









                                                wjandreawjandrea

                                                504413




                                                504413




















                                                    user23146 is a new contributor. Be nice, and check out our Code of Conduct.









                                                    draft saved

                                                    draft discarded


















                                                    user23146 is a new contributor. Be nice, and check out our Code of Conduct.












                                                    user23146 is a new contributor. Be nice, and check out our Code of Conduct.











                                                    user23146 is a new contributor. Be nice, and check out our Code of Conduct.














                                                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                                    • Please be sure to answer the question. Provide details and share your research!

                                                    But avoid


                                                    • Asking for help, clarification, or responding to other answers.

                                                    • Making statements based on opinion; back them up with references or personal experience.

                                                    To learn more, see our tips on writing great answers.




                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function ()
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509173%2fonly-print-output-after-finding-pattern%23new-answer', 'question_page');

                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    Boston (Lincolnshire) Stedsbyld | Berne yn Boston | NavigaasjemenuBoston Borough CouncilBoston, Lincolnshire

                                                    Ballerup Komuun Stääden an saarpen | Futnuuten | Luke uk diar | Nawigatsjuunwww.ballerup.dkwww.statistikbanken.dk: Tabelle BEF44 (Folketal pr. 1. januar fordelt på byer)Commonskategorii: Ballerup Komuun55° 44′ N, 12° 22′ O

                                                    Serbia Índice Etimología Historia Geografía Entorno natural División administrativa Política Demografía Economía Cultura Deportes Véase también Notas Referencias Bibliografía Enlaces externos Menú de navegación44°49′00″N 20°28′00″E / 44.816666666667, 20.46666666666744°49′00″N 20°28′00″E / 44.816666666667, 20.466666666667U.S. Department of Commerce (2015)«Informe sobre Desarrollo Humano 2018»Kosovo-Metohija.Neutralna Srbija u NATO okruzenju.The SerbsTheories on the Origin of the Serbs.Serbia.Earls: Webster's Quotations, Facts and Phrases.Egeo y Balcanes.Kalemegdan.Southern Pannonia during the age of the Great Migrations.Culture in Serbia.History.The Serbian Origin of the Montenegrins.Nemanjics' period (1186-1353).Stefan Uros (1355-1371).Serbian medieval history.Habsburg–Ottoman Wars (1525–1718).The Ottoman Empire, 1700-1922.The First Serbian Uprising.Miloš, prince of Serbia.3. Bosnia-Hercegovina and the Congress of Berlin.The Balkan Wars and the Partition of Macedonia.The Falcon and the Eagle: Montenegro and Austria-Hungary, 1908-1914.Typhus fever on the eastern front in World War I.Anniversary of WWI battle marked in Serbia.La derrota austriaca en los Balcanes. Fin del Imperio Austro-Húngaro.Imperio austriaco y Reino de Hungría.Los tiempos modernos: del capitalismo a la globalización, siglos XVII al XXI.The period of Croatia within ex-Yugoslavia.Yugoslavia: Much in a Name.Las dictaduras europeas.Croacia: mito y realidad."Crods ask arms".Prólogo a la invasión.La campaña de los Balcanes.La resistencia en Yugoslavia.Jasenovac Research Institute.Día en memoria de las víctimas del genocidio en la Segunda Guerra Mundial.El infierno estuvo en Jasenovac.Croacia empieza a «desenterrar» a sus muertos de Jasenovac.World fascism: a historical encyclopedia, Volumen 1.Tito. Josip Broz.El nuevo orden y la resistencia.La conquista del poder.Algunos aspectos de la economía yugoslava a mediados de 1962.Albania-Kosovo crisis.De Kosovo a Kosova: una visión demográfica.La crisis de la economía yugoslava y la política de "estabilización".Milosevic: el poder de un absolutista."Serbia under Milošević: politics in the 1990s"Milosevic cavó en Kosovo la tumba de la antigua Yugoslavia.La ONU exculpa a Serbia de genocidio en la guerra de Bosnia.Slobodan Milosevic, el burócrata que supo usar el odio.Es la fuerza contra el sufrimiento de muchos inocentes.Matanza de civiles al bombardear la OTAN un puente mientras pasaba un tren.Las consecuencias negativas de los bombardeos de Yugoslavia se sentirán aún durante largo tiempo.Kostunica advierte que la misión de Europa en Kosovo es ilegal.Las 24 horas más largas en la vida de Slobodan Milosevic.Serbia declara la guerra a la mafia por matar a Djindjic.Tadic presentará "quizás en diciembre" la solicitud de entrada en la UE.Montenegro declara su independencia de Serbia.Serbia se declara estado soberano tras separación de Montenegro.«Accordance with International Law of the Unilateral Declaration of Independence by the Provisional Institutions of Self-Government of Kosovo (Request for Advisory Opinion)»Mladic pasa por el médico antes de la audiencia para extraditarloDatos de Serbia y Kosovo.The Carpathian Mountains.Position, Relief, Climate.Transport.Finding birds in Serbia.U Srbiji do 2010. godine 10% teritorije nacionalni parkovi.Geography.Serbia: Climate.Variability of Climate In Serbia In The Second Half of The 20thc Entury.BASIC CLIMATE CHARACTERISTICS FOR THE TERRITORY OF SERBIA.Fauna y flora: Serbia.Serbia and Montenegro.Información general sobre Serbia.Republic of Serbia Environmental Protection Agency (SEPA).Serbia recycling 15% of waste.Reform process of the Serbian energy sector.20-MW Wind Project Being Developed in Serbia.Las Naciones Unidas. Paz para Kosovo.Aniversario sin fiesta.Population by national or ethnic groups by Census 2002.Article 7. Coat of arms, flag and national anthem.Serbia, flag of.Historia.«Serbia and Montenegro in Pictures»Serbia.Serbia aprueba su nueva Constitución con un apoyo de más del 50%.Serbia. Population.«El nacionalista Nikolic gana las elecciones presidenciales en Serbia»El europeísta Borís Tadic gana la segunda vuelta de las presidenciales serbias.Aleksandar Vucic, de ultranacionalista serbio a fervoroso europeístaKostunica condena la declaración del "falso estado" de Kosovo.Comienza el debate sobre la independencia de Kosovo en el TIJ.La Corte Internacional de Justicia dice que Kosovo no violó el derecho internacional al declarar su independenciaKosovo: Enviado de la ONU advierte tensiones y fragilidad.«Bruselas recomienda negociar la adhesión de Serbia tras el acuerdo sobre Kosovo»Monografía de Serbia.Bez smanjivanja Vojske Srbije.Military statistics Serbia and Montenegro.Šutanovac: Vojni budžet za 2009. godinu 70 milijardi dinara.Serbia-Montenegro shortens obligatory military service to six months.No hay justicia para las víctimas de los bombardeos de la OTAN.Zapatero reitera la negativa de España a reconocer la independencia de Kosovo.Anniversary of the signing of the Stabilisation and Association Agreement.Detenido en Serbia Radovan Karadzic, el criminal de guerra más buscado de Europa."Serbia presentará su candidatura de acceso a la UE antes de fin de año".Serbia solicita la adhesión a la UE.Detenido el exgeneral serbobosnio Ratko Mladic, principal acusado del genocidio en los Balcanes«Lista de todos los Estados Miembros de las Naciones Unidas que son parte o signatarios en los diversos instrumentos de derechos humanos de las Naciones Unidas»versión pdfProtocolo Facultativo de la Convención sobre la Eliminación de todas las Formas de Discriminación contra la MujerConvención contra la tortura y otros tratos o penas crueles, inhumanos o degradantesversión pdfProtocolo Facultativo de la Convención sobre los Derechos de las Personas con DiscapacidadEl ACNUR recibe con beneplácito el envío de tropas de la OTAN a Kosovo y se prepara ante una posible llegada de refugiados a Serbia.Kosovo.- El jefe de la Minuk denuncia que los serbios boicotearon las legislativas por 'presiones'.Bosnia and Herzegovina. Population.Datos básicos de Montenegro, historia y evolución política.Serbia y Montenegro. Indicador: Tasa global de fecundidad (por 1000 habitantes).Serbia y Montenegro. Indicador: Tasa bruta de mortalidad (por 1000 habitantes).Population.Falleció el patriarca de la Iglesia Ortodoxa serbia.Atacan en Kosovo autobuses con peregrinos tras la investidura del patriarca serbio IrinejSerbian in Hungary.Tasas de cambio."Kosovo es de todos sus ciudadanos".Report for Serbia.Country groups by income.GROSS DOMESTIC PRODUCT (GDP) OF THE REPUBLIC OF SERBIA 1997–2007.Economic Trends in the Republic of Serbia 2006.National Accounts Statitics.Саопштења за јавност.GDP per inhabitant varied by one to six across the EU27 Member States.Un pacto de estabilidad para Serbia.Unemployment rate rises in Serbia.Serbia, Belarus agree free trade to woo investors.Serbia, Turkey call investors to Serbia.Success Stories.U.S. Private Investment in Serbia and Montenegro.Positive trend.Banks in Serbia.La Cámara de Comercio acompaña a empresas madrileñas a Serbia y Croacia.Serbia Industries.Energy and mining.Agriculture.Late crops, fruit and grapes output, 2008.Rebranding Serbia: A Hobby Shortly to Become a Full-Time Job.Final data on livestock statistics, 2008.Serbian cell-phone users.U Srbiji sve više računara.Телекомуникације.U Srbiji 27 odsto gradjana koristi Internet.Serbia and Montenegro.Тренд гледаности програма РТС-а у 2008. и 2009.години.Serbian railways.General Terms.El mercado del transporte aéreo en Serbia.Statistics.Vehículos de motor registrados.Planes ambiciosos para el transporte fluvial.Turismo.Turistički promet u Republici Srbiji u periodu januar-novembar 2007. godine.Your Guide to Culture.Novi Sad - city of culture.Nis - european crossroads.Serbia. Properties inscribed on the World Heritage List .Stari Ras and Sopoćani.Studenica Monastery.Medieval Monuments in Kosovo.Gamzigrad-Romuliana, Palace of Galerius.Skiing and snowboarding in Kopaonik.Tara.New7Wonders of Nature Finalists.Pilgrimage of Saint Sava.Exit Festival: Best european festival.Banje u Srbiji.«The Encyclopedia of world history»Culture.Centenario del arte serbio.«Djordje Andrejevic Kun: el único pintor de los brigadistas yugoslavos de la guerra civil española»About the museum.The collections.Miroslav Gospel – Manuscript from 1180.Historicity in the Serbo-Croatian Heroic Epic.Culture and Sport.Conversación con el rector del Seminario San Sava.'Reina Margot' funde drama, historia y gesto con música de Goran Bregovic.Serbia gana Eurovisión y España decepciona de nuevo con un vigésimo puesto.Home.Story.Emir Kusturica.Tercer oro para Paskaljevic.Nikola Tesla Year.Home.Tesla, un genio tomado por loco.Aniversario de la muerte de Nikola Tesla.El Museo Nikola Tesla en Belgrado.El inventor del mundo actual.República de Serbia.University of Belgrade official statistics.University of Novi Sad.University of Kragujevac.University of Nis.Comida. Cocina serbia.Cooking.Montenegro se convertirá en el miembro 204 del movimiento olímpico.España, campeona de Europa de baloncesto.El Partizan de Belgrado se corona campeón por octava vez consecutiva.Serbia se clasifica para el Mundial de 2010 de Sudáfrica.Serbia Name Squad For Northern Ireland And South Korea Tests.Fútbol.- El Partizán de Belgrado se proclama campeón de la Liga serbia.Clasificacion final Mundial de balonmano Croacia 2009.Serbia vence a España y se consagra campeón mundial de waterpolo.Novak Djokovic no convence pero gana en Australia.Gana Ana Ivanovic el Roland Garros.Serena Williams gana el US Open por tercera vez.Biography.Bradt Travel Guide SerbiaThe Encyclopedia of World War IGobierno de SerbiaPortal del Gobierno de SerbiaPresidencia de SerbiaAsamblea Nacional SerbiaMinisterio de Asuntos exteriores de SerbiaBanco Nacional de SerbiaAgencia Serbia para la Promoción de la Inversión y la ExportaciónOficina de Estadísticas de SerbiaCIA. Factbook 2008Organización nacional de turismo de SerbiaDiscover SerbiaConoce SerbiaNoticias de SerbiaSerbiaWorldCat1512028760000 0000 9526 67094054598-2n8519591900570825ge1309191004530741010url17413117006669D055771Serbia