pipe commands inside find -exec?2019 Community Moderator Electionmissing argument to find -execHow to find first match in multiple filesHow does this find command using “find … -exec sh -c '…' sh +” work?Problem combining -or and -exec with find commandConvert order for find … -execHaving issues with FIND commands pruning directoriesCorrect location for piping and redirecting output in find -exec?find -exec ; economyTrying to add multiple grep commands within an execHow to rename a file to have the same name and extension as another file in same directory

Unfrosted light bulb

Writing in a Christian voice

Print a physical multiplication table

Was World War I a war of liberals against authoritarians?

Why doesn't the fusion process of the sun speed up?

Do people actually use the word "kaputt" in conversation?

Nested Dynamic SOQL Query

What is the reasoning behind standardization (dividing by standard deviation)?

Why didn’t Eve recognize the little cockroach as a living organism?

Have any astronauts/cosmonauts died in space?

Turning a hard to access nut?

The English Debate

What will the Frenchman say?

"Marked down as someone wanting to sell shares." What does that mean?

Do native speakers use "ultima" and "proxima" frequently in spoken English?

What kind of footwear is suitable for walking in micro gravity environment?

Which partition to make active?

What is the difference between something being completely legal and being completely decriminalized?

How can an organ that provides biological immortality be unable to regenerate?

How can a new country break out from a developed country without war?

Do I need an EFI partition for each 18.04 ubuntu I have on my HD?

Jem'Hadar, something strange about their life expectancy

Symbolism of 18 Journeyers

Friend wants my recommendation but I don't want to give it to him



pipe commands inside find -exec?



2019 Community Moderator Electionmissing argument to find -execHow to find first match in multiple filesHow does this find command using “find … -exec sh -c '…' sh +” work?Problem combining -or and -exec with find commandConvert order for find … -execHaving issues with FIND commands pruning directoriesCorrect location for piping and redirecting output in find -exec?find -exec ; economyTrying to add multiple grep commands within an execHow to rename a file to have the same name and extension as another file in same directory










3















Let's suppose I want to find all .txt files and search for some string. I would do:



find ./ -type f -name "*.txt" -exec egrep -iH 'something' '' ;


What if I want to do a more complex filtering, like this:



egrep something file.txt | egrep somethingelse | egrep other


Inside find -exec? (or similar)



Please keep in mind that I'm searching for a solution that I could easily type when I need it. I know that this could be done with a few lines using a shell script, but that isn't what I'm looking for.










share|improve this question









New contributor




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
























    3















    Let's suppose I want to find all .txt files and search for some string. I would do:



    find ./ -type f -name "*.txt" -exec egrep -iH 'something' '' ;


    What if I want to do a more complex filtering, like this:



    egrep something file.txt | egrep somethingelse | egrep other


    Inside find -exec? (or similar)



    Please keep in mind that I'm searching for a solution that I could easily type when I need it. I know that this could be done with a few lines using a shell script, but that isn't what I'm looking for.










    share|improve this question









    New contributor




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






















      3












      3








      3








      Let's suppose I want to find all .txt files and search for some string. I would do:



      find ./ -type f -name "*.txt" -exec egrep -iH 'something' '' ;


      What if I want to do a more complex filtering, like this:



      egrep something file.txt | egrep somethingelse | egrep other


      Inside find -exec? (or similar)



      Please keep in mind that I'm searching for a solution that I could easily type when I need it. I know that this could be done with a few lines using a shell script, but that isn't what I'm looking for.










      share|improve this question









      New contributor




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












      Let's suppose I want to find all .txt files and search for some string. I would do:



      find ./ -type f -name "*.txt" -exec egrep -iH 'something' '' ;


      What if I want to do a more complex filtering, like this:



      egrep something file.txt | egrep somethingelse | egrep other


      Inside find -exec? (or similar)



      Please keep in mind that I'm searching for a solution that I could easily type when I need it. I know that this could be done with a few lines using a shell script, but that isn't what I'm looking for.







      shell find pipe






      share|improve this question









      New contributor




      1nt3rn3t 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




      1nt3rn3t 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 13 hours ago









      terdon

      132k32262441




      132k32262441






      New contributor




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









      asked 13 hours ago









      1nt3rn3t1nt3rn3t

      182




      182




      New contributor




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





      New contributor





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






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




















          2 Answers
          2






          active

          oldest

          votes


















          8














          If you must do it from within find, you need to call a shell:



          find ./ -type f -name "*.txt" -exec sh -c 'grep -EiH something "$1" | grep -E somethingelse | grep -E other' sh ;


          Other alternatives include using xargs instead:



          find ./ -type f -name "*.txt" | 
          xargs -I grep -EiH something |
          grep -EiH somethingelse |
          grep -EiH other


          Or, much safer for arbitrary filenames (assuming your find supports -print0):



          find ./ -type f -name "*.txt" -print0 | 
          xargs -0 grep -EiH something |
          grep -Ei somethingelse |
          grep -Ei other


          Or, you could just use a shell loop instead:



          find ./ -type f -name "*.txt" -print0 | 
          while IFS= read -d '' file; do
          grep -Ei something "$file" |
          grep -Ei somethingelse |
          grep -Ei other
          done





          share|improve this answer

























          • The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            13 hours ago











          • ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

            – Kusalananda
            12 hours ago


















          2














          You can put bash (or another shell) as your -exec command:



          find -type -f -name "*.txt" -exec bash -c 'egrep -iH something "" | egrep somethingelse | egrep other' ;


          One of the downsides of doing it this way is that it creates more potential for nested quoting issues as your commands get more complex. If you want to avoid that, you can break it out into a for-loop:



          for i in $(find -type -f -name "*.txt"); do
          if egrep -iH something "$i" | egrep somethingelse | egrep other; then
          echo "Found something: $i"
          fi
          done





          share|improve this answer








          New contributor




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















          • 1





            The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            12 hours ago











          • That for loop is a very bad idea.Also known as bash pitfall #1.

            – terdon
            12 hours ago











          • This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

            – Kamil Maciorowski
            12 hours ago











          • Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

            – trobinson
            9 hours ago










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



          );






          1nt3rn3t 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%2f507023%2fpipe-commands-inside-find-exec%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









          8














          If you must do it from within find, you need to call a shell:



          find ./ -type f -name "*.txt" -exec sh -c 'grep -EiH something "$1" | grep -E somethingelse | grep -E other' sh ;


          Other alternatives include using xargs instead:



          find ./ -type f -name "*.txt" | 
          xargs -I grep -EiH something |
          grep -EiH somethingelse |
          grep -EiH other


          Or, much safer for arbitrary filenames (assuming your find supports -print0):



          find ./ -type f -name "*.txt" -print0 | 
          xargs -0 grep -EiH something |
          grep -Ei somethingelse |
          grep -Ei other


          Or, you could just use a shell loop instead:



          find ./ -type f -name "*.txt" -print0 | 
          while IFS= read -d '' file; do
          grep -Ei something "$file" |
          grep -Ei somethingelse |
          grep -Ei other
          done





          share|improve this answer

























          • The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            13 hours ago











          • ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

            – Kusalananda
            12 hours ago















          8














          If you must do it from within find, you need to call a shell:



          find ./ -type f -name "*.txt" -exec sh -c 'grep -EiH something "$1" | grep -E somethingelse | grep -E other' sh ;


          Other alternatives include using xargs instead:



          find ./ -type f -name "*.txt" | 
          xargs -I grep -EiH something |
          grep -EiH somethingelse |
          grep -EiH other


          Or, much safer for arbitrary filenames (assuming your find supports -print0):



          find ./ -type f -name "*.txt" -print0 | 
          xargs -0 grep -EiH something |
          grep -Ei somethingelse |
          grep -Ei other


          Or, you could just use a shell loop instead:



          find ./ -type f -name "*.txt" -print0 | 
          while IFS= read -d '' file; do
          grep -Ei something "$file" |
          grep -Ei somethingelse |
          grep -Ei other
          done





          share|improve this answer

























          • The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            13 hours ago











          • ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

            – Kusalananda
            12 hours ago













          8












          8








          8







          If you must do it from within find, you need to call a shell:



          find ./ -type f -name "*.txt" -exec sh -c 'grep -EiH something "$1" | grep -E somethingelse | grep -E other' sh ;


          Other alternatives include using xargs instead:



          find ./ -type f -name "*.txt" | 
          xargs -I grep -EiH something |
          grep -EiH somethingelse |
          grep -EiH other


          Or, much safer for arbitrary filenames (assuming your find supports -print0):



          find ./ -type f -name "*.txt" -print0 | 
          xargs -0 grep -EiH something |
          grep -Ei somethingelse |
          grep -Ei other


          Or, you could just use a shell loop instead:



          find ./ -type f -name "*.txt" -print0 | 
          while IFS= read -d '' file; do
          grep -Ei something "$file" |
          grep -Ei somethingelse |
          grep -Ei other
          done





          share|improve this answer















          If you must do it from within find, you need to call a shell:



          find ./ -type f -name "*.txt" -exec sh -c 'grep -EiH something "$1" | grep -E somethingelse | grep -E other' sh ;


          Other alternatives include using xargs instead:



          find ./ -type f -name "*.txt" | 
          xargs -I grep -EiH something |
          grep -EiH somethingelse |
          grep -EiH other


          Or, much safer for arbitrary filenames (assuming your find supports -print0):



          find ./ -type f -name "*.txt" -print0 | 
          xargs -0 grep -EiH something |
          grep -Ei somethingelse |
          grep -Ei other


          Or, you could just use a shell loop instead:



          find ./ -type f -name "*.txt" -print0 | 
          while IFS= read -d '' file; do
          grep -Ei something "$file" |
          grep -Ei somethingelse |
          grep -Ei other
          done






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 12 hours ago









          Kusalananda

          136k17257425




          136k17257425










          answered 13 hours ago









          terdonterdon

          132k32262441




          132k32262441












          • The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            13 hours ago











          • ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

            – Kusalananda
            12 hours ago

















          • The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            13 hours ago











          • ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

            – Kusalananda
            12 hours ago
















          The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

          – 1nt3rn3t
          13 hours ago





          The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

          – 1nt3rn3t
          13 hours ago













          ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

          – Kusalananda
          12 hours ago





          ... and xargs could also be used as xargs -I sh -c '...' sh , if one wanted to (it makes it possible to run parallel jobs with -P if one wanted to).

          – Kusalananda
          12 hours ago













          2














          You can put bash (or another shell) as your -exec command:



          find -type -f -name "*.txt" -exec bash -c 'egrep -iH something "" | egrep somethingelse | egrep other' ;


          One of the downsides of doing it this way is that it creates more potential for nested quoting issues as your commands get more complex. If you want to avoid that, you can break it out into a for-loop:



          for i in $(find -type -f -name "*.txt"); do
          if egrep -iH something "$i" | egrep somethingelse | egrep other; then
          echo "Found something: $i"
          fi
          done





          share|improve this answer








          New contributor




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















          • 1





            The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            12 hours ago











          • That for loop is a very bad idea.Also known as bash pitfall #1.

            – terdon
            12 hours ago











          • This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

            – Kamil Maciorowski
            12 hours ago











          • Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

            – trobinson
            9 hours ago















          2














          You can put bash (or another shell) as your -exec command:



          find -type -f -name "*.txt" -exec bash -c 'egrep -iH something "" | egrep somethingelse | egrep other' ;


          One of the downsides of doing it this way is that it creates more potential for nested quoting issues as your commands get more complex. If you want to avoid that, you can break it out into a for-loop:



          for i in $(find -type -f -name "*.txt"); do
          if egrep -iH something "$i" | egrep somethingelse | egrep other; then
          echo "Found something: $i"
          fi
          done





          share|improve this answer








          New contributor




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















          • 1





            The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            12 hours ago











          • That for loop is a very bad idea.Also known as bash pitfall #1.

            – terdon
            12 hours ago











          • This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

            – Kamil Maciorowski
            12 hours ago











          • Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

            – trobinson
            9 hours ago













          2












          2








          2







          You can put bash (or another shell) as your -exec command:



          find -type -f -name "*.txt" -exec bash -c 'egrep -iH something "" | egrep somethingelse | egrep other' ;


          One of the downsides of doing it this way is that it creates more potential for nested quoting issues as your commands get more complex. If you want to avoid that, you can break it out into a for-loop:



          for i in $(find -type -f -name "*.txt"); do
          if egrep -iH something "$i" | egrep somethingelse | egrep other; then
          echo "Found something: $i"
          fi
          done





          share|improve this answer








          New contributor




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










          You can put bash (or another shell) as your -exec command:



          find -type -f -name "*.txt" -exec bash -c 'egrep -iH something "" | egrep somethingelse | egrep other' ;


          One of the downsides of doing it this way is that it creates more potential for nested quoting issues as your commands get more complex. If you want to avoid that, you can break it out into a for-loop:



          for i in $(find -type -f -name "*.txt"); do
          if egrep -iH something "$i" | egrep somethingelse | egrep other; then
          echo "Found something: $i"
          fi
          done






          share|improve this answer








          New contributor




          trobinson 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 answer



          share|improve this answer






          New contributor




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









          answered 13 hours ago









          trobinsontrobinson

          461




          461




          New contributor




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





          New contributor





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






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







          • 1





            The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            12 hours ago











          • That for loop is a very bad idea.Also known as bash pitfall #1.

            – terdon
            12 hours ago











          • This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

            – Kamil Maciorowski
            12 hours ago











          • Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

            – trobinson
            9 hours ago












          • 1





            The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

            – 1nt3rn3t
            12 hours ago











          • That for loop is a very bad idea.Also known as bash pitfall #1.

            – terdon
            12 hours ago











          • This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

            – Kamil Maciorowski
            12 hours ago











          • Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

            – trobinson
            9 hours ago







          1




          1





          The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

          – 1nt3rn3t
          12 hours ago





          The first one is exactly what I was looking for. Extremely simple and small enough to type depending on my needs. Thanks.

          – 1nt3rn3t
          12 hours ago













          That for loop is a very bad idea.Also known as bash pitfall #1.

          – terdon
          12 hours ago





          That for loop is a very bad idea.Also known as bash pitfall #1.

          – terdon
          12 hours ago













          This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

          – Kamil Maciorowski
          12 hours ago





          This "" in your first command may even lead to code injection. Imagine you got files from me and there's a file literally named " & rm -rf ~ & : ".txt. Luckily for you -type -f is invalid, it just saved your home directory. Fix the typo and try again. :) terdon did it right: find … -exec sh -c '… "$1" …' foo ;.

          – Kamil Maciorowski
          12 hours ago













          Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

          – trobinson
          9 hours ago





          Thanks for the information! Yeah, the -type -f is a typo I make constantly when using find, and I didn't notice it in my answer. Whoops. terdon's answer is better, but I'll leave this for comparative purposes.

          – trobinson
          9 hours ago










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









          draft saved

          draft discarded


















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












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











          1nt3rn3t 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%2f507023%2fpipe-commands-inside-find-exec%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

          The Calvary Singular or Plural The 2019 Stack Overflow Developer Survey Results Are InAre collective nouns always plural, or are certain ones singular?Is “audience” singular or plural?“Wasn't” vs. “weren't” in a vernacular sentence“My last couple of years” — singular or plural?Is 'rest' singular or plural?Is “all but one” singular or plural?Whether to use the singular or plural form of basis?Singular and Plural for numbersIs there a plural form of teeth?performance: plural vs singular?singular or plural nouns?Singular and Plural

          How does one intimidate enemies without having the capacity for violence?Ideas for how aliens would approach this fight?How to convey the scale of my humanoid without science or units?How does the “space drive” conserve momentum?Planet Vanishes - How does this affect the orbiting starships?How does a community of a Universe Simulator have the same language as its creator?How would US Presidential elections be affected if voters could choose the state their vote for President was counted in?How Does One Ensures the Immortality of Their ConsciousnessHow do I retain national independence while also having a one world government?How can Ganymede have an Earth-like gravity without us having realized it?How would one make a lion mount for a fantasy world?

          Output visual diagram of pictureASCII-art logic gate diagramBooks on a ShelfDetermine the Dimensions of a Rotated RectangleDraw a Houndstooth PatternDraw and label an ASCII hexagonal gridGolf me an ASCII AlphabetASCII Jigsaw PuzzleOutput a pretty boxASCII-Art Venn DiagramASCII Exact Cover with Rectangles