Output redirection is not working with top piped to grepIn what order do piped commands run?Pipes & redirection binding precedence with disjuncts, conjuncts etc?Where does network waiting go in 'top'?append mode in Centos and UbuntuHow is the “load average” interpreted in “top” output? Is it the same for all distributions?Raspbian: problem with output redirection in udev scripttop command not workingWhy does total tasks listed in 'top' command output not equal running + sleeping?StdOut redirection not workingmulti-core CPU usage

I Accidentally Deleted a Stock Terminal Theme

Can I ask the recruiters in my resume to put the reason why I am rejected?

"You are your self first supporter", a more proper way to say it

Can the number of solutions to a system of PDEs be bounded using the characteristic variety?

meaning of に in 本当に?

How to format long polynomial?

Uncaught TypeError: 'set' on proxy: trap returned falsish for property Name

Two films in a tank, only one comes out with a development error – why?

What would happen to a modern skyscraper if it rains micro blackholes?

When a company launches a new product do they "come out" with a new product or do they "come up" with a new product?

Why is 150k or 200k jobs considered good when there's 300k+ births a month?

How can bays and straits be determined in a procedurally generated map?

Maximum likelihood parameters deviate from posterior distributions

What's that red-plus icon near a text?

Get value of a counter

Theorems that impeded progress

What is the word for reserving something for yourself before others do?

Could an aircraft fly or hover using only jets of compressed air?

expand `ifthenelse` immediately

What is a clear way to write a bar that has an extra beat?

Did Shadowfax go to Valinor?

Can a Cauchy sequence converge for one metric while not converging for another?

Is it inappropriate for a student to attend their mentor's dissertation defense?

Is it legal for company to use my work email to pretend I still work there?



Output redirection is not working with top piped to grep


In what order do piped commands run?Pipes & redirection binding precedence with disjuncts, conjuncts etc?Where does network waiting go in 'top'?append mode in Centos and UbuntuHow is the “load average” interpreted in “top” output? Is it the same for all distributions?Raspbian: problem with output redirection in udev scripttop command not workingWhy does total tasks listed in 'top' command output not equal running + sleeping?StdOut redirection not workingmulti-core CPU usage






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








3















When I run this command in Linux:



$ top -b -d 20 | grep "load average" -A 20 > top.log


top.log is always empty.



But when I run this command:



$ top -b -d 20 | grep "load average" -A 20 | tee top.log


then top.log has contents.



If I don't want to use tee (because I don't want the output to be displayed onto the console), how do I correct the first command so that top.log is updated?



My machine uses CentOS Linux 7 (Core).










share|improve this question






















  • weird. In my Cento7 machine, both commands work well.

    – JinChin
    Mar 27 at 10:29






  • 1





    if you want only load average, why not use uptime ?

    – Archemar
    Mar 27 at 10:29











  • @Archemar What is the -A option of grep for?

    – Uncle Billy
    Mar 27 at 10:33












  • @Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

    – kurt
    Mar 27 at 10:36












  • @UncleBilly Ah, yes that is the catch ...

    – Archemar
    Mar 27 at 10:38

















3















When I run this command in Linux:



$ top -b -d 20 | grep "load average" -A 20 > top.log


top.log is always empty.



But when I run this command:



$ top -b -d 20 | grep "load average" -A 20 | tee top.log


then top.log has contents.



If I don't want to use tee (because I don't want the output to be displayed onto the console), how do I correct the first command so that top.log is updated?



My machine uses CentOS Linux 7 (Core).










share|improve this question






















  • weird. In my Cento7 machine, both commands work well.

    – JinChin
    Mar 27 at 10:29






  • 1





    if you want only load average, why not use uptime ?

    – Archemar
    Mar 27 at 10:29











  • @Archemar What is the -A option of grep for?

    – Uncle Billy
    Mar 27 at 10:33












  • @Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

    – kurt
    Mar 27 at 10:36












  • @UncleBilly Ah, yes that is the catch ...

    – Archemar
    Mar 27 at 10:38













3












3








3


1






When I run this command in Linux:



$ top -b -d 20 | grep "load average" -A 20 > top.log


top.log is always empty.



But when I run this command:



$ top -b -d 20 | grep "load average" -A 20 | tee top.log


then top.log has contents.



If I don't want to use tee (because I don't want the output to be displayed onto the console), how do I correct the first command so that top.log is updated?



My machine uses CentOS Linux 7 (Core).










share|improve this question














When I run this command in Linux:



$ top -b -d 20 | grep "load average" -A 20 > top.log


top.log is always empty.



But when I run this command:



$ top -b -d 20 | grep "load average" -A 20 | tee top.log


then top.log has contents.



If I don't want to use tee (because I don't want the output to be displayed onto the console), how do I correct the first command so that top.log is updated?



My machine uses CentOS Linux 7 (Core).







centos pipe io-redirection top






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 27 at 10:19









kurtkurt

1183




1183












  • weird. In my Cento7 machine, both commands work well.

    – JinChin
    Mar 27 at 10:29






  • 1





    if you want only load average, why not use uptime ?

    – Archemar
    Mar 27 at 10:29











  • @Archemar What is the -A option of grep for?

    – Uncle Billy
    Mar 27 at 10:33












  • @Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

    – kurt
    Mar 27 at 10:36












  • @UncleBilly Ah, yes that is the catch ...

    – Archemar
    Mar 27 at 10:38

















  • weird. In my Cento7 machine, both commands work well.

    – JinChin
    Mar 27 at 10:29






  • 1





    if you want only load average, why not use uptime ?

    – Archemar
    Mar 27 at 10:29











  • @Archemar What is the -A option of grep for?

    – Uncle Billy
    Mar 27 at 10:33












  • @Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

    – kurt
    Mar 27 at 10:36












  • @UncleBilly Ah, yes that is the catch ...

    – Archemar
    Mar 27 at 10:38
















weird. In my Cento7 machine, both commands work well.

– JinChin
Mar 27 at 10:29





weird. In my Cento7 machine, both commands work well.

– JinChin
Mar 27 at 10:29




1




1





if you want only load average, why not use uptime ?

– Archemar
Mar 27 at 10:29





if you want only load average, why not use uptime ?

– Archemar
Mar 27 at 10:29













@Archemar What is the -A option of grep for?

– Uncle Billy
Mar 27 at 10:33






@Archemar What is the -A option of grep for?

– Uncle Billy
Mar 27 at 10:33














@Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

– kurt
Mar 27 at 10:36






@Archemar @UncleBilly, i'm using a trick for limiting the amount of entries returned by top.

– kurt
Mar 27 at 10:36














@UncleBilly Ah, yes that is the catch ...

– Archemar
Mar 27 at 10:38





@UncleBilly Ah, yes that is the catch ...

– Archemar
Mar 27 at 10:38










2 Answers
2






active

oldest

votes


















3














You should use the --line-buffered option of grep (since your question is tagged "centos", you're most certainly using GNU grep).



By default, grep will only use line buffering when the output is a terminal (just like stdio functions: printf, puts, etc). The --line-buffered option is overriding that. GNU coreutils also has a stdbuf(1) wrapper that should work with any dynamically linked program which is using stdio.






share|improve this answer
































    -1














    You can use cat /proc/loadavg at intervals. Why pull it from top? It is intended for active monitoring (mostly), and will always use more resources than a fast read of loadavg. For the process listing, just use ps, and sort with the —sort flag. E.g.



    ( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe ...



    or



    ( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe ...






    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%2f508935%2foutput-redirection-is-not-working-with-top-piped-to-grep%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









      3














      You should use the --line-buffered option of grep (since your question is tagged "centos", you're most certainly using GNU grep).



      By default, grep will only use line buffering when the output is a terminal (just like stdio functions: printf, puts, etc). The --line-buffered option is overriding that. GNU coreutils also has a stdbuf(1) wrapper that should work with any dynamically linked program which is using stdio.






      share|improve this answer





























        3














        You should use the --line-buffered option of grep (since your question is tagged "centos", you're most certainly using GNU grep).



        By default, grep will only use line buffering when the output is a terminal (just like stdio functions: printf, puts, etc). The --line-buffered option is overriding that. GNU coreutils also has a stdbuf(1) wrapper that should work with any dynamically linked program which is using stdio.






        share|improve this answer



























          3












          3








          3







          You should use the --line-buffered option of grep (since your question is tagged "centos", you're most certainly using GNU grep).



          By default, grep will only use line buffering when the output is a terminal (just like stdio functions: printf, puts, etc). The --line-buffered option is overriding that. GNU coreutils also has a stdbuf(1) wrapper that should work with any dynamically linked program which is using stdio.






          share|improve this answer















          You should use the --line-buffered option of grep (since your question is tagged "centos", you're most certainly using GNU grep).



          By default, grep will only use line buffering when the output is a terminal (just like stdio functions: printf, puts, etc). The --line-buffered option is overriding that. GNU coreutils also has a stdbuf(1) wrapper that should work with any dynamically linked program which is using stdio.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 27 at 10:32

























          answered Mar 27 at 10:26









          Uncle BillyUncle Billy

          9348




          9348























              -1














              You can use cat /proc/loadavg at intervals. Why pull it from top? It is intended for active monitoring (mostly), and will always use more resources than a fast read of loadavg. For the process listing, just use ps, and sort with the —sort flag. E.g.



              ( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe ...



              or



              ( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe ...






              share|improve this answer





























                -1














                You can use cat /proc/loadavg at intervals. Why pull it from top? It is intended for active monitoring (mostly), and will always use more resources than a fast read of loadavg. For the process listing, just use ps, and sort with the —sort flag. E.g.



                ( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe ...



                or



                ( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe ...






                share|improve this answer



























                  -1












                  -1








                  -1







                  You can use cat /proc/loadavg at intervals. Why pull it from top? It is intended for active monitoring (mostly), and will always use more resources than a fast read of loadavg. For the process listing, just use ps, and sort with the —sort flag. E.g.



                  ( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe ...



                  or



                  ( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe ...






                  share|improve this answer















                  You can use cat /proc/loadavg at intervals. Why pull it from top? It is intended for active monitoring (mostly), and will always use more resources than a fast read of loadavg. For the process listing, just use ps, and sort with the —sort flag. E.g.



                  ( while true ; do cat /proc/loadavg ; ps -aux | sort -nrk 3,3 | head -n 20 ; sleep 3 ; done ; ) | pipe ...



                  or



                  ( while true ; do cat /proc/loadavg ; ps -Ao user,uid,pid,comm,pcpu,tty —sort=-pcpu —no-headers | head -n 20 ; sleep 3 ; done ; ) | pipe ...







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Mar 28 at 6:38

























                  answered Mar 28 at 3:08









                  user2497user2497

                  603137




                  603137



























                      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%2f508935%2foutput-redirection-is-not-working-with-top-piped-to-grep%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







                      -centos, io-redirection, pipe, top

                      Popular posts from this blog

                      Creating 100m^2 grid automatically using QGIS?Creating grid constrained within polygon in QGIS?Createing polygon layer from point data using QGIS?Creating vector grid using QGIS?Creating grid polygons from coordinates using R or PythonCreating grid from spatio temporal point data?Creating fields in attributes table using other layers using QGISCreate .shp vector grid in QGISQGIS Creating 4km point grid within polygonsCreate a vector grid over a raster layerVector Grid Creates just one grid

                      Nikolai Prilezhaev Bibliography References External links Navigation menuEarly Russian Organic Chemists and Their Legacy092774english translationRussian Biography

                      How to link a C library to an Assembly library on Mac with clangHow do you set, clear, and toggle a single bit?Find (and kill) process locking port 3000 on MacWho is listening on a given TCP port on Mac OS X?How to start PostgreSQL server on Mac OS X?Compile assembler in nasm on mac osHow do I install pip on macOS or OS X?AFNetworking 2.0 “_NSURLSessionTransferSizeUnknown” linking error on Mac OS X 10.8C++ code for testing the Collatz conjecture faster than hand-written assembly - why?How to link a NASM code and GCC in Mac OS X?How to run x86 .asm on macOS Sierra