Nested for Loop In Directory












0














I have two sets of files organized as such:



#first directory
/direc1/files

file0.1.tar.gz
file0.2.tar.gz
file0.3.tar.gz
file0.4.tar.gz
.
.
.
file0.22.tar.gz


In this directory, I have 242 files in total.
My current nested command to run script.py is below:



for z in `seq 0 10`; do
for i in `seq 1 22`; do python script.py --l2 --ld-wind-cm 1 --annot file${z}.${i} --thin-annot --out file${z}.${i} --print-snps;done;done


If you notice, I have hardcoded file in this loop. Is there a way to run this without using file${z}.${i} and instead using a variable?










share|improve this question
























  • This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
    – ilkkachu
    Dec 16 at 18:04










  • Ok, I'll make a new question instead. Thanks.
    – Workhorse
    Dec 16 at 18:12
















0














I have two sets of files organized as such:



#first directory
/direc1/files

file0.1.tar.gz
file0.2.tar.gz
file0.3.tar.gz
file0.4.tar.gz
.
.
.
file0.22.tar.gz


In this directory, I have 242 files in total.
My current nested command to run script.py is below:



for z in `seq 0 10`; do
for i in `seq 1 22`; do python script.py --l2 --ld-wind-cm 1 --annot file${z}.${i} --thin-annot --out file${z}.${i} --print-snps;done;done


If you notice, I have hardcoded file in this loop. Is there a way to run this without using file${z}.${i} and instead using a variable?










share|improve this question
























  • This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
    – ilkkachu
    Dec 16 at 18:04










  • Ok, I'll make a new question instead. Thanks.
    – Workhorse
    Dec 16 at 18:12














0












0








0







I have two sets of files organized as such:



#first directory
/direc1/files

file0.1.tar.gz
file0.2.tar.gz
file0.3.tar.gz
file0.4.tar.gz
.
.
.
file0.22.tar.gz


In this directory, I have 242 files in total.
My current nested command to run script.py is below:



for z in `seq 0 10`; do
for i in `seq 1 22`; do python script.py --l2 --ld-wind-cm 1 --annot file${z}.${i} --thin-annot --out file${z}.${i} --print-snps;done;done


If you notice, I have hardcoded file in this loop. Is there a way to run this without using file${z}.${i} and instead using a variable?










share|improve this question















I have two sets of files organized as such:



#first directory
/direc1/files

file0.1.tar.gz
file0.2.tar.gz
file0.3.tar.gz
file0.4.tar.gz
.
.
.
file0.22.tar.gz


In this directory, I have 242 files in total.
My current nested command to run script.py is below:



for z in `seq 0 10`; do
for i in `seq 1 22`; do python script.py --l2 --ld-wind-cm 1 --annot file${z}.${i} --thin-annot --out file${z}.${i} --print-snps;done;done


If you notice, I have hardcoded file in this loop. Is there a way to run this without using file${z}.${i} and instead using a variable?







shell-script






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 16 at 18:10

























asked Dec 15 at 21:55









Workhorse

1104




1104












  • This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
    – ilkkachu
    Dec 16 at 18:04










  • Ok, I'll make a new question instead. Thanks.
    – Workhorse
    Dec 16 at 18:12


















  • This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
    – ilkkachu
    Dec 16 at 18:04










  • Ok, I'll make a new question instead. Thanks.
    – Workhorse
    Dec 16 at 18:12
















This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
– ilkkachu
Dec 16 at 18:04




This stopped being the same question when you brought a second directory into it. Having it there pretty much invalidates the existing answers. Please, write your questions so that they include all the necessary detail.
– ilkkachu
Dec 16 at 18:04












Ok, I'll make a new question instead. Thanks.
– Workhorse
Dec 16 at 18:12




Ok, I'll make a new question instead. Thanks.
– Workhorse
Dec 16 at 18:12










2 Answers
2






active

oldest

votes


















3














Your request is not quite clear. Why the two loops across the two ranges? Wouldn't



for FN in *.tar.gz; do echo python script.py --out "$FN"; done


be sufficient? Remove the echo if happy with the result.



If there is NO other file than the ones you want to work upon, the "extensions" can go away as well, run the for loop across *.






share|improve this answer























  • Hi, I have clarified my question, if that is ok?
    – Workhorse
    Dec 16 at 1:23



















3














If there are other tar.gz files there besides those files you need you can use:



for i in file{0..10}.{1..22}.tar.gz; do python script.py --out "$i" --print-file; done


If these are the only files in the folder then this is sufficient, and will work with any file name.



for i in * ; do python script.py --out "$i" --print-file; done


If these are the only tar.gz files in folder, but there are some other type of files there then this can be used and can work with any name of tar.gz files:



for i in *.tar.gz ; do python script.py --out "$i" --print-file; done





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%2f489223%2fnested-for-loop-in-directory%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














    Your request is not quite clear. Why the two loops across the two ranges? Wouldn't



    for FN in *.tar.gz; do echo python script.py --out "$FN"; done


    be sufficient? Remove the echo if happy with the result.



    If there is NO other file than the ones you want to work upon, the "extensions" can go away as well, run the for loop across *.






    share|improve this answer























    • Hi, I have clarified my question, if that is ok?
      – Workhorse
      Dec 16 at 1:23
















    3














    Your request is not quite clear. Why the two loops across the two ranges? Wouldn't



    for FN in *.tar.gz; do echo python script.py --out "$FN"; done


    be sufficient? Remove the echo if happy with the result.



    If there is NO other file than the ones you want to work upon, the "extensions" can go away as well, run the for loop across *.






    share|improve this answer























    • Hi, I have clarified my question, if that is ok?
      – Workhorse
      Dec 16 at 1:23














    3












    3








    3






    Your request is not quite clear. Why the two loops across the two ranges? Wouldn't



    for FN in *.tar.gz; do echo python script.py --out "$FN"; done


    be sufficient? Remove the echo if happy with the result.



    If there is NO other file than the ones you want to work upon, the "extensions" can go away as well, run the for loop across *.






    share|improve this answer














    Your request is not quite clear. Why the two loops across the two ranges? Wouldn't



    for FN in *.tar.gz; do echo python script.py --out "$FN"; done


    be sufficient? Remove the echo if happy with the result.



    If there is NO other file than the ones you want to work upon, the "extensions" can go away as well, run the for loop across *.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Dec 15 at 23:09









    ilkkachu

    55.5k783151




    55.5k783151










    answered Dec 15 at 22:05









    RudiC

    4,1741312




    4,1741312












    • Hi, I have clarified my question, if that is ok?
      – Workhorse
      Dec 16 at 1:23


















    • Hi, I have clarified my question, if that is ok?
      – Workhorse
      Dec 16 at 1:23
















    Hi, I have clarified my question, if that is ok?
    – Workhorse
    Dec 16 at 1:23




    Hi, I have clarified my question, if that is ok?
    – Workhorse
    Dec 16 at 1:23













    3














    If there are other tar.gz files there besides those files you need you can use:



    for i in file{0..10}.{1..22}.tar.gz; do python script.py --out "$i" --print-file; done


    If these are the only files in the folder then this is sufficient, and will work with any file name.



    for i in * ; do python script.py --out "$i" --print-file; done


    If these are the only tar.gz files in folder, but there are some other type of files there then this can be used and can work with any name of tar.gz files:



    for i in *.tar.gz ; do python script.py --out "$i" --print-file; done





    share|improve this answer




























      3














      If there are other tar.gz files there besides those files you need you can use:



      for i in file{0..10}.{1..22}.tar.gz; do python script.py --out "$i" --print-file; done


      If these are the only files in the folder then this is sufficient, and will work with any file name.



      for i in * ; do python script.py --out "$i" --print-file; done


      If these are the only tar.gz files in folder, but there are some other type of files there then this can be used and can work with any name of tar.gz files:



      for i in *.tar.gz ; do python script.py --out "$i" --print-file; done





      share|improve this answer


























        3












        3








        3






        If there are other tar.gz files there besides those files you need you can use:



        for i in file{0..10}.{1..22}.tar.gz; do python script.py --out "$i" --print-file; done


        If these are the only files in the folder then this is sufficient, and will work with any file name.



        for i in * ; do python script.py --out "$i" --print-file; done


        If these are the only tar.gz files in folder, but there are some other type of files there then this can be used and can work with any name of tar.gz files:



        for i in *.tar.gz ; do python script.py --out "$i" --print-file; done





        share|improve this answer














        If there are other tar.gz files there besides those files you need you can use:



        for i in file{0..10}.{1..22}.tar.gz; do python script.py --out "$i" --print-file; done


        If these are the only files in the folder then this is sufficient, and will work with any file name.



        for i in * ; do python script.py --out "$i" --print-file; done


        If these are the only tar.gz files in folder, but there are some other type of files there then this can be used and can work with any name of tar.gz files:



        for i in *.tar.gz ; do python script.py --out "$i" --print-file; done






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Dec 15 at 23:09









        ilkkachu

        55.5k783151




        55.5k783151










        answered Dec 15 at 22:10









        rAlen

        845510




        845510






























            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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%2f489223%2fnested-for-loop-in-directory%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

            Morgemoulin

            Scott Moir

            Souastre