How to sed chunks text from a stream of files from find The Next CEO of Stack OverflowUse...

What connection does MS Office have to Netscape Navigator?

Which one is the true statement?

WOW air has ceased operation, can I get my tickets refunded?

How do I align (1) and (2)?

Domestic-to-international connection at Orlando (MCO)

Should I tutor a student who I know has cheated on their homework?

Proper way to express "He disappeared them"

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

Is it my responsibility to learn a new technology in my own time my employer wants to implement?

Powershell. How to parse gci Name?

Solving system of ODEs with extra parameter

Is wanting to ask what to write an indication that you need to change your story?

Do I need to write [sic] when a number is less than 10 but isn't written out?

Why is the US ranked as #45 in Press Freedom ratings, despite its extremely permissive free speech laws?

Easy to read palindrome checker

Is there a way to save my career from absolute disaster?

What was the first Unix version to run on a microcomputer?

Can we say or write : "No, it'sn't"?

Won the lottery - how do I keep the money?

How to place nodes around a circle from some initial angle?

Would be okay to drive on this tire?

How did people program for Consoles with multiple CPUs?

Is it ever safe to open a suspicious HTML file (e.g. email attachment)?

If Nick Fury and Coulson already knew about aliens (Kree and Skrull) why did they wait until Thor's appearance to start making weapons?



How to sed chunks text from a stream of files from find



The Next CEO of Stack OverflowUse xargs to move files from within a directoryHow can I pass in a parameter to sed?Sending a list (text file) of files and pathnames to xargsHow to find and replace using sed text containing a star *Printing the status of files processed when using findextracting strings from LaTeX filesHow do I extract text fragments of a file using sed?How does `xargs` work on the filenames provided by `find`, which may cause problems?How to use sed and regular expressions to find pattern and remove last few characters?How to search and replace with sed in a line with variable content in it?












2















I have a directory of many *.org files. I want to select a section of text out of all these org files.
There is a * Learnings header in the content. I would like to select from the * Learnings header to the end of the file.



My current attempt is



find ~/org/journal -name "*.org" -type f | xargs sed -n -e '/* Learnings/,$p'


This however just outputs one concatenated stream.



Expected output would be a stream of the content after the * Learnings header for each file returned from the find



also the solution does not have to use sed










share|improve this question

























  • What output do you expect/need?

    – choroba
    4 hours ago











  • @choroba added expected output

    – kevzettler
    2 hours ago
















2















I have a directory of many *.org files. I want to select a section of text out of all these org files.
There is a * Learnings header in the content. I would like to select from the * Learnings header to the end of the file.



My current attempt is



find ~/org/journal -name "*.org" -type f | xargs sed -n -e '/* Learnings/,$p'


This however just outputs one concatenated stream.



Expected output would be a stream of the content after the * Learnings header for each file returned from the find



also the solution does not have to use sed










share|improve this question

























  • What output do you expect/need?

    – choroba
    4 hours ago











  • @choroba added expected output

    – kevzettler
    2 hours ago














2












2








2








I have a directory of many *.org files. I want to select a section of text out of all these org files.
There is a * Learnings header in the content. I would like to select from the * Learnings header to the end of the file.



My current attempt is



find ~/org/journal -name "*.org" -type f | xargs sed -n -e '/* Learnings/,$p'


This however just outputs one concatenated stream.



Expected output would be a stream of the content after the * Learnings header for each file returned from the find



also the solution does not have to use sed










share|improve this question
















I have a directory of many *.org files. I want to select a section of text out of all these org files.
There is a * Learnings header in the content. I would like to select from the * Learnings header to the end of the file.



My current attempt is



find ~/org/journal -name "*.org" -type f | xargs sed -n -e '/* Learnings/,$p'


This however just outputs one concatenated stream.



Expected output would be a stream of the content after the * Learnings header for each file returned from the find



also the solution does not have to use sed







sed find xargs






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 hours ago







kevzettler

















asked 4 hours ago









kevzettlerkevzettler

14817




14817













  • What output do you expect/need?

    – choroba
    4 hours ago











  • @choroba added expected output

    – kevzettler
    2 hours ago



















  • What output do you expect/need?

    – choroba
    4 hours ago











  • @choroba added expected output

    – kevzettler
    2 hours ago

















What output do you expect/need?

– choroba
4 hours ago





What output do you expect/need?

– choroba
4 hours ago













@choroba added expected output

– kevzettler
2 hours ago





@choroba added expected output

– kevzettler
2 hours ago










2 Answers
2






active

oldest

votes


















2














In Perl, you can use eof that will be true for each end of file:



find . -type f -name '*.org' -exec perl -ne 'print if /* Learnings/ .. eof' {} +


Using the + form of -exec works similarly to xargs: it builds the arguments to the specified command by appending all the found files.






share|improve this answer































    2














    With the GNU implementation of sed, you can use the -s aka --separate option for each file to be treated separately in that regard.



    find . -name '*.org' -type f -exec sed -s '/* Learnings/,$!d' {} +


    With awk:



    find . -name '*.org' -type f -exec awk '
    FNR == 1 {found = 0}; /* Learnings/ {found = 1}; found' {} +





    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
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509619%2fhow-to-sed-chunks-text-from-a-stream-of-files-from-find%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      In Perl, you can use eof that will be true for each end of file:



      find . -type f -name '*.org' -exec perl -ne 'print if /* Learnings/ .. eof' {} +


      Using the + form of -exec works similarly to xargs: it builds the arguments to the specified command by appending all the found files.






      share|improve this answer




























        2














        In Perl, you can use eof that will be true for each end of file:



        find . -type f -name '*.org' -exec perl -ne 'print if /* Learnings/ .. eof' {} +


        Using the + form of -exec works similarly to xargs: it builds the arguments to the specified command by appending all the found files.






        share|improve this answer


























          2












          2








          2







          In Perl, you can use eof that will be true for each end of file:



          find . -type f -name '*.org' -exec perl -ne 'print if /* Learnings/ .. eof' {} +


          Using the + form of -exec works similarly to xargs: it builds the arguments to the specified command by appending all the found files.






          share|improve this answer













          In Perl, you can use eof that will be true for each end of file:



          find . -type f -name '*.org' -exec perl -ne 'print if /* Learnings/ .. eof' {} +


          Using the + form of -exec works similarly to xargs: it builds the arguments to the specified command by appending all the found files.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 1 hour ago









          chorobachoroba

          27k45176




          27k45176

























              2














              With the GNU implementation of sed, you can use the -s aka --separate option for each file to be treated separately in that regard.



              find . -name '*.org' -type f -exec sed -s '/* Learnings/,$!d' {} +


              With awk:



              find . -name '*.org' -type f -exec awk '
              FNR == 1 {found = 0}; /* Learnings/ {found = 1}; found' {} +





              share|improve this answer




























                2














                With the GNU implementation of sed, you can use the -s aka --separate option for each file to be treated separately in that regard.



                find . -name '*.org' -type f -exec sed -s '/* Learnings/,$!d' {} +


                With awk:



                find . -name '*.org' -type f -exec awk '
                FNR == 1 {found = 0}; /* Learnings/ {found = 1}; found' {} +





                share|improve this answer


























                  2












                  2








                  2







                  With the GNU implementation of sed, you can use the -s aka --separate option for each file to be treated separately in that regard.



                  find . -name '*.org' -type f -exec sed -s '/* Learnings/,$!d' {} +


                  With awk:



                  find . -name '*.org' -type f -exec awk '
                  FNR == 1 {found = 0}; /* Learnings/ {found = 1}; found' {} +





                  share|improve this answer













                  With the GNU implementation of sed, you can use the -s aka --separate option for each file to be treated separately in that regard.



                  find . -name '*.org' -type f -exec sed -s '/* Learnings/,$!d' {} +


                  With awk:



                  find . -name '*.org' -type f -exec awk '
                  FNR == 1 {found = 0}; /* Learnings/ {found = 1}; found' {} +






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 1 hour ago









                  Stéphane ChazelasStéphane Chazelas

                  312k57589946




                  312k57589946






























                      draft saved

                      draft discarded




















































                      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%2f509619%2fhow-to-sed-chunks-text-from-a-stream-of-files-from-find%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

                      Parapolítica Índice Antecedentes El escándalo Proceso judicial Consecuencias Véase...

                      How to remove border from elements in the last row?Targeting flex items on the last rowHow to vertically wrap...

                      Tecnologías entrañables Índice Antecedentes Desarrollo Tecnologías Entrañables en la...