How to sed chunks text from a stream of files from find The 2019 Stack Overflow Developer Survey Results Are InOnly print output after finding patternUse 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?

If climate change impact can be observed in nature, has that had any effect on rural, i.e. farming community, perception of the scientific consensus?

Can an undergraduate be advised by a professor who is very far away?

How much of the clove should I use when using big garlic heads?

How to support a colleague who finds meetings extremely tiring?

Match Roman Numerals

What do I do when my TA workload is more than expected?

Is Cinnamon a desktop environment or a window manager? (Or both?)

Accepted by European university, rejected by all American ones I applied to? Possible reasons?

What information about me do stores get via my credit card?

Is it safe to harvest rainwater that fell on solar panels?

How do I free up internal storage if I don't have any apps downloaded?

Why can I use a list index as an indexing variable in a for loop?

How to add class in ko template in magento2

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Kerning for subscripts of sigma?

How to charge AirPods to keep battery healthy?

Can we generate random numbers using irrational numbers like π and e?

A female thief is not sold to make restitution -- so what happens instead?

Are spiders unable to hurt humans, especially very small spiders?

What is the motivation for a law requiring 2 parties to consent for recording a conversation

How come people say “Would of”?

Dropping list elements from nested list after evaluation

What is this sharp, curved notch on my knife for?

How do PCB vias affect signal quality?



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



The 2019 Stack Overflow Developer Survey Results Are InOnly print output after finding patternUse 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?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








3















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
    Mar 30 at 18:50











  • @choroba added expected output

    – kevzettler
    Mar 30 at 21:08

















3















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
    Mar 30 at 18:50











  • @choroba added expected output

    – kevzettler
    Mar 30 at 21:08













3












3








3








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 Mar 30 at 21:08







kevzettler

















asked Mar 30 at 18:45









kevzettlerkevzettler

15317




15317












  • What output do you expect/need?

    – choroba
    Mar 30 at 18:50











  • @choroba added expected output

    – kevzettler
    Mar 30 at 21:08

















  • What output do you expect/need?

    – choroba
    Mar 30 at 18:50











  • @choroba added expected output

    – kevzettler
    Mar 30 at 21:08
















What output do you expect/need?

– choroba
Mar 30 at 18:50





What output do you expect/need?

– choroba
Mar 30 at 18:50













@choroba added expected output

– kevzettler
Mar 30 at 21:08





@choroba added expected output

– kevzettler
Mar 30 at 21:08










4 Answers
4






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






























      0














      Unless this is some kind of homework ;-), you can use the same trick as here with GNU or *BSD grep:



      grep -hrFA 10000 '* Learnings' directory


      Replace 10000 with something bigger if your files have more than 10000 lines.






      share|improve this answer






























        0














        examine it in gnu sed,



        find ~/org/journal -iname "*.org" -type f -exec sed -nE '/*sLearnings/,$ p' '' +


        to really edit and save it, with the origin in a file with .o extension,



        find ~/org/journal -iname "*.org" -type f -exec sed -i.o -nE '/*sLearnings/,$ p' '' +





        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

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          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 Mar 30 at 21:22









              chorobachoroba

              27.1k45176




              27.1k45176























                  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 Mar 30 at 21:28









                      Stéphane ChazelasStéphane Chazelas

                      314k57594952




                      314k57594952





















                          0














                          Unless this is some kind of homework ;-), you can use the same trick as here with GNU or *BSD grep:



                          grep -hrFA 10000 '* Learnings' directory


                          Replace 10000 with something bigger if your files have more than 10000 lines.






                          share|improve this answer



























                            0














                            Unless this is some kind of homework ;-), you can use the same trick as here with GNU or *BSD grep:



                            grep -hrFA 10000 '* Learnings' directory


                            Replace 10000 with something bigger if your files have more than 10000 lines.






                            share|improve this answer

























                              0












                              0








                              0







                              Unless this is some kind of homework ;-), you can use the same trick as here with GNU or *BSD grep:



                              grep -hrFA 10000 '* Learnings' directory


                              Replace 10000 with something bigger if your files have more than 10000 lines.






                              share|improve this answer













                              Unless this is some kind of homework ;-), you can use the same trick as here with GNU or *BSD grep:



                              grep -hrFA 10000 '* Learnings' directory


                              Replace 10000 with something bigger if your files have more than 10000 lines.







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Mar 31 at 17:53









                              mosvymosvy

                              9,69711036




                              9,69711036





















                                  0














                                  examine it in gnu sed,



                                  find ~/org/journal -iname "*.org" -type f -exec sed -nE '/*sLearnings/,$ p' '' +


                                  to really edit and save it, with the origin in a file with .o extension,



                                  find ~/org/journal -iname "*.org" -type f -exec sed -i.o -nE '/*sLearnings/,$ p' '' +





                                  share|improve this answer



























                                    0














                                    examine it in gnu sed,



                                    find ~/org/journal -iname "*.org" -type f -exec sed -nE '/*sLearnings/,$ p' '' +


                                    to really edit and save it, with the origin in a file with .o extension,



                                    find ~/org/journal -iname "*.org" -type f -exec sed -i.o -nE '/*sLearnings/,$ p' '' +





                                    share|improve this answer

























                                      0












                                      0








                                      0







                                      examine it in gnu sed,



                                      find ~/org/journal -iname "*.org" -type f -exec sed -nE '/*sLearnings/,$ p' '' +


                                      to really edit and save it, with the origin in a file with .o extension,



                                      find ~/org/journal -iname "*.org" -type f -exec sed -i.o -nE '/*sLearnings/,$ p' '' +





                                      share|improve this answer













                                      examine it in gnu sed,



                                      find ~/org/journal -iname "*.org" -type f -exec sed -nE '/*sLearnings/,$ p' '' +


                                      to really edit and save it, with the origin in a file with .o extension,



                                      find ~/org/journal -iname "*.org" -type f -exec sed -i.o -nE '/*sLearnings/,$ p' '' +






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Apr 4 at 14:04









                                      abdanabdan

                                      494




                                      494



























                                          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

                                          Triangular numbers and gcdProving sum of a set is $0 pmod n$ if $n$ is odd, or $fracn2 pmod n$ if $n$ is even?Is greatest common divisor of two numbers really their smallest linear combination?GCD, LCM RelationshipProve a set of nonnegative integers with greatest common divisor 1 and closed under addition has all but finite many nonnegative integers.all pairs of a and b in an equation containing gcdTriangular Numbers Modulo $k$ - Hit All Values?Understanding the Existence and Uniqueness of the GCDGCD and LCM with logical symbolsThe greatest common divisor of two positive integers less than 100 is equal to 3. Their least common multiple is twelve times one of the integers.Suppose that for all integers $x$, $x|a$ and $x|b$ if and only if $x|c$. Then $c = gcd(a,b)$Which is the gcd of 2 numbers which are multiplied and the result is 600000?

                                          Ingelân Ynhâld Etymology | Geografy | Skiednis | Polityk en bestjoer | Ekonomy | Demografy | Kultuer | Klimaat | Sjoch ek | Keppelings om utens | Boarnen, noaten en referinsjes Navigaasjemenuwww.gov.ukOffisjele webside fan it regear fan it Feriene KeninkrykOffisjele webside fan it Britske FerkearsburoNederlânsktalige ynformaasje fan it Britske FerkearsburoOffisjele webside fan English Heritage, de organisaasje dy't him ynset foar it behâld fan it Ingelske kultuergoedYnwennertallen fan alle Britske stêden út 'e folkstelling fan 2011Notes en References, op dizze sideEngland

                                          Հադիս Բովանդակություն Անվանում և նշանակություն | Դասակարգում | Աղբյուրներ | Նավարկման ցանկ