AWK: Insert copy of column in the middle of csv

Multi tool use
Multi tool use

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












Example csv:



AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH


Now i wan't a copy column 2 (BBB) and add it in front of column 3 so the file looks like:



AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH









share|improve this question

























    up vote
    2
    down vote

    favorite












    Example csv:



    AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH


    Now i wan't a copy column 2 (BBB) and add it in front of column 3 so the file looks like:



    AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH









    share|improve this question























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      Example csv:



      AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH


      Now i wan't a copy column 2 (BBB) and add it in front of column 3 so the file looks like:



      AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH









      share|improve this question













      Example csv:



      AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH


      Now i wan't a copy column 2 (BBB) and add it in front of column 3 so the file looks like:



      AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH






      awk






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 31 at 9:08









      T-One

      536




      536




















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          7
          down vote



          accepted










          $ cat test.txt
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

          $ awk -F, '$2=$2","$21' OFS=, test.txt
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer
















          • 1




            much cleaner than my answer :)
            – RobotJohnny
            Aug 31 at 9:15










          • In this case I think this is enough: awk '$2=$2" "$21' test.txt
            – Claes Wikner
            Sep 1 at 22:47

















          up vote
          3
          down vote













          awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8' file.csv



          Example:



           ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8'
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer




















          • Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
            – T-One
            Aug 31 at 9:15






          • 1




            check out @Kamaraj's answer, should do the trick for you
            – RobotJohnny
            Aug 31 at 9:16










          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',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          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%2f465964%2fawk-insert-copy-of-column-in-the-middle-of-csv%23new-answer', 'question_page');

          );

          Post as a guest






























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          7
          down vote



          accepted










          $ cat test.txt
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

          $ awk -F, '$2=$2","$21' OFS=, test.txt
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer
















          • 1




            much cleaner than my answer :)
            – RobotJohnny
            Aug 31 at 9:15










          • In this case I think this is enough: awk '$2=$2" "$21' test.txt
            – Claes Wikner
            Sep 1 at 22:47














          up vote
          7
          down vote



          accepted










          $ cat test.txt
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

          $ awk -F, '$2=$2","$21' OFS=, test.txt
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer
















          • 1




            much cleaner than my answer :)
            – RobotJohnny
            Aug 31 at 9:15










          • In this case I think this is enough: awk '$2=$2" "$21' test.txt
            – Claes Wikner
            Sep 1 at 22:47












          up vote
          7
          down vote



          accepted







          up vote
          7
          down vote



          accepted






          $ cat test.txt
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

          $ awk -F, '$2=$2","$21' OFS=, test.txt
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer












          $ cat test.txt
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH

          $ awk -F, '$2=$2","$21' OFS=, test.txt
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Aug 31 at 9:11









          Kamaraj

          2,9081413




          2,9081413







          • 1




            much cleaner than my answer :)
            – RobotJohnny
            Aug 31 at 9:15










          • In this case I think this is enough: awk '$2=$2" "$21' test.txt
            – Claes Wikner
            Sep 1 at 22:47












          • 1




            much cleaner than my answer :)
            – RobotJohnny
            Aug 31 at 9:15










          • In this case I think this is enough: awk '$2=$2" "$21' test.txt
            – Claes Wikner
            Sep 1 at 22:47







          1




          1




          much cleaner than my answer :)
          – RobotJohnny
          Aug 31 at 9:15




          much cleaner than my answer :)
          – RobotJohnny
          Aug 31 at 9:15












          In this case I think this is enough: awk '$2=$2" "$21' test.txt
          – Claes Wikner
          Sep 1 at 22:47




          In this case I think this is enough: awk '$2=$2" "$21' test.txt
          – Claes Wikner
          Sep 1 at 22:47












          up vote
          3
          down vote













          awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8' file.csv



          Example:



           ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8'
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer




















          • Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
            – T-One
            Aug 31 at 9:15






          • 1




            check out @Kamaraj's answer, should do the trick for you
            – RobotJohnny
            Aug 31 at 9:16














          up vote
          3
          down vote













          awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8' file.csv



          Example:



           ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8'
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer




















          • Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
            – T-One
            Aug 31 at 9:15






          • 1




            check out @Kamaraj's answer, should do the trick for you
            – RobotJohnny
            Aug 31 at 9:16












          up vote
          3
          down vote










          up vote
          3
          down vote









          awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8' file.csv



          Example:



           ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8'
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH





          share|improve this answer












          awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8' file.csv



          Example:



           ➤ echo "AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH" | awk 'print $1,$2,$2,$3,$4,$5,$6,$7,$8'
          AAA, BBB, BBB, CCC, DDD, EEE, FFF, GGG, HHH






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Aug 31 at 9:10









          RobotJohnny

          702216




          702216











          • Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
            – T-One
            Aug 31 at 9:15






          • 1




            check out @Kamaraj's answer, should do the trick for you
            – RobotJohnny
            Aug 31 at 9:16
















          • Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
            – T-One
            Aug 31 at 9:15






          • 1




            check out @Kamaraj's answer, should do the trick for you
            – RobotJohnny
            Aug 31 at 9:16















          Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
          – T-One
          Aug 31 at 9:15




          Thanks, that's a solution i already thought about but the real csv file has more then 50 fields so the print gets very long.
          – T-One
          Aug 31 at 9:15




          1




          1




          check out @Kamaraj's answer, should do the trick for you
          – RobotJohnny
          Aug 31 at 9:16




          check out @Kamaraj's answer, should do the trick for you
          – RobotJohnny
          Aug 31 at 9:16

















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f465964%2fawk-insert-copy-of-column-in-the-middle-of-csv%23new-answer', 'question_page');

          );

          Post as a guest













































































          T3sz dLy B1d 6,q,ByFZh0O,sxKagLR3iYiC4FzILDf
          I3syg9hSv3aH,3LK4C

          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          How many registers does an x86_64 CPU actually have?

          Displaying single band from multi-band raster using QGIS