How to Merge Multiple Columns in to Two Columns based on Column 1 Value?





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







1















I have a text file in the below sample format



File.txt



Record1 20 23;
Record2 256;
Record3 45 679 98 1;


The no of columns in each line can vary. I want to change the file with only two columns based on column 1 Value. Below is the target output.



File_2_Columns.txt



Record1 20;
Record1 23;
Record2 256;
Record3 45;
Record3 679;
Record3 98;
Record3 1;









share|improve this question









New contributor




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



























    1















    I have a text file in the below sample format



    File.txt



    Record1 20 23;
    Record2 256;
    Record3 45 679 98 1;


    The no of columns in each line can vary. I want to change the file with only two columns based on column 1 Value. Below is the target output.



    File_2_Columns.txt



    Record1 20;
    Record1 23;
    Record2 256;
    Record3 45;
    Record3 679;
    Record3 98;
    Record3 1;









    share|improve this question









    New contributor




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























      1












      1








      1








      I have a text file in the below sample format



      File.txt



      Record1 20 23;
      Record2 256;
      Record3 45 679 98 1;


      The no of columns in each line can vary. I want to change the file with only two columns based on column 1 Value. Below is the target output.



      File_2_Columns.txt



      Record1 20;
      Record1 23;
      Record2 256;
      Record3 45;
      Record3 679;
      Record3 98;
      Record3 1;









      share|improve this question









      New contributor




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












      I have a text file in the below sample format



      File.txt



      Record1 20 23;
      Record2 256;
      Record3 45 679 98 1;


      The no of columns in each line can vary. I want to change the file with only two columns based on column 1 Value. Below is the target output.



      File_2_Columns.txt



      Record1 20;
      Record1 23;
      Record2 256;
      Record3 45;
      Record3 679;
      Record3 98;
      Record3 1;






      shell-script text-processing






      share|improve this question









      New contributor




      rkatraga 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




      rkatraga 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 4 hours ago









      steve

      14.4k22653




      14.4k22653






      New contributor




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









      asked 5 hours ago









      rkatragarkatraga

      175




      175




      New contributor




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





      New contributor





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






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






















          1 Answer
          1






          active

          oldest

          votes


















          4














          Here's one way



          awk '{for(a=2;a<=NF;a++){printf "%s %s%cn",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt


          Good luck with the rest of your homework ;-)



          If teacher is giving extra credits for shortest answer, try



          awk '{for(a=2;a<=NF;){printf"%s%cn",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt





          share|improve this answer





















          • 1





            Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

            – rkatraga
            4 hours ago











          • ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

            – steeldriver
            4 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
          });


          }
          });






          rkatraga 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%2f512872%2fhow-to-merge-multiple-columns-in-to-two-columns-based-on-column-1-value%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          Here's one way



          awk '{for(a=2;a<=NF;a++){printf "%s %s%cn",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt


          Good luck with the rest of your homework ;-)



          If teacher is giving extra credits for shortest answer, try



          awk '{for(a=2;a<=NF;){printf"%s%cn",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt





          share|improve this answer





















          • 1





            Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

            – rkatraga
            4 hours ago











          • ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

            – steeldriver
            4 hours ago
















          4














          Here's one way



          awk '{for(a=2;a<=NF;a++){printf "%s %s%cn",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt


          Good luck with the rest of your homework ;-)



          If teacher is giving extra credits for shortest answer, try



          awk '{for(a=2;a<=NF;){printf"%s%cn",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt





          share|improve this answer





















          • 1





            Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

            – rkatraga
            4 hours ago











          • ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

            – steeldriver
            4 hours ago














          4












          4








          4







          Here's one way



          awk '{for(a=2;a<=NF;a++){printf "%s %s%cn",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt


          Good luck with the rest of your homework ;-)



          If teacher is giving extra credits for shortest answer, try



          awk '{for(a=2;a<=NF;){printf"%s%cn",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt





          share|improve this answer















          Here's one way



          awk '{for(a=2;a<=NF;a++){printf "%s %s%cn",$1,$a,a==NF ? "" : ";"}}' File.txt >File_2_Columns.txt


          Good luck with the rest of your homework ;-)



          If teacher is giving extra credits for shortest answer, try



          awk '{for(a=2;a<=NF;){printf"%s%cn",$1" "$a,a++-NF?";":""}}' File.txt >File_2_Columns.txt






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 4 hours ago

























          answered 4 hours ago









          stevesteve

          14.4k22653




          14.4k22653








          • 1





            Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

            – rkatraga
            4 hours ago











          • ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

            – steeldriver
            4 hours ago














          • 1





            Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

            – rkatraga
            4 hours ago











          • ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

            – steeldriver
            4 hours ago








          1




          1





          Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

          – rkatraga
          4 hours ago





          Thank you so much. Got a better idea on loops inside awk. Code makes a lot of sense.

          – rkatraga
          4 hours ago













          ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

          – steeldriver
          4 hours ago





          ... or perhaps 'BEGIN{ORS=RS=";n"} {for(a=2; a<=NF;) print $1,$(a++)}'

          – steeldriver
          4 hours ago










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










          draft saved

          draft discarded


















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













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












          rkatraga 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%2f512872%2fhow-to-merge-multiple-columns-in-to-two-columns-based-on-column-1-value%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

          What other Star Trek series did the main TNG cast show up in?

          Berlina muro

          Berlina aerponto