How to sort by odd lines then remove repeated values?












6















I have the following type of file:



transcr_25793 +
YAL039C -
transcr_25793 +
YAL037C-B -
transcr_20649 +
YBL100C -
transcr_7135 +
YBL029C-A -
transcr_11317 +
YBL067C -
transcr_25793 +
YAL038W +
transcr_7135 +
YBL029W +


I was trying to get something like this:



transcr_7135 +
YBL029C-A -
transcr_7135 +
YBL029W +
transcr_11317 +
YBL067C -
transcr_20649 +
YBL100C -
transcr_25793 +
YAL039C -
transcr_25793 +
YAL037C-B -
transcr_25793 +
YAL038W +


Then, afterward, I was looking for something like this:



transcr_7135 +
YBL029C-A -
YBL029W +
transcr_11317 +
YBL067C -
transcr_20649 +
YBL100C -
transcr_25793 +
YAL039C -
YAL037C-B -
YAL038W +


I've scrolled through sort manual and some posts, but couldn't find anything that fit near this, just sort using numerical values to get odd lines...










share|improve this question





























    6















    I have the following type of file:



    transcr_25793 +
    YAL039C -
    transcr_25793 +
    YAL037C-B -
    transcr_20649 +
    YBL100C -
    transcr_7135 +
    YBL029C-A -
    transcr_11317 +
    YBL067C -
    transcr_25793 +
    YAL038W +
    transcr_7135 +
    YBL029W +


    I was trying to get something like this:



    transcr_7135 +
    YBL029C-A -
    transcr_7135 +
    YBL029W +
    transcr_11317 +
    YBL067C -
    transcr_20649 +
    YBL100C -
    transcr_25793 +
    YAL039C -
    transcr_25793 +
    YAL037C-B -
    transcr_25793 +
    YAL038W +


    Then, afterward, I was looking for something like this:



    transcr_7135 +
    YBL029C-A -
    YBL029W +
    transcr_11317 +
    YBL067C -
    transcr_20649 +
    YBL100C -
    transcr_25793 +
    YAL039C -
    YAL037C-B -
    YAL038W +


    I've scrolled through sort manual and some posts, but couldn't find anything that fit near this, just sort using numerical values to get odd lines...










    share|improve this question



























      6












      6








      6


      2






      I have the following type of file:



      transcr_25793 +
      YAL039C -
      transcr_25793 +
      YAL037C-B -
      transcr_20649 +
      YBL100C -
      transcr_7135 +
      YBL029C-A -
      transcr_11317 +
      YBL067C -
      transcr_25793 +
      YAL038W +
      transcr_7135 +
      YBL029W +


      I was trying to get something like this:



      transcr_7135 +
      YBL029C-A -
      transcr_7135 +
      YBL029W +
      transcr_11317 +
      YBL067C -
      transcr_20649 +
      YBL100C -
      transcr_25793 +
      YAL039C -
      transcr_25793 +
      YAL037C-B -
      transcr_25793 +
      YAL038W +


      Then, afterward, I was looking for something like this:



      transcr_7135 +
      YBL029C-A -
      YBL029W +
      transcr_11317 +
      YBL067C -
      transcr_20649 +
      YBL100C -
      transcr_25793 +
      YAL039C -
      YAL037C-B -
      YAL038W +


      I've scrolled through sort manual and some posts, but couldn't find anything that fit near this, just sort using numerical values to get odd lines...










      share|improve this question
















      I have the following type of file:



      transcr_25793 +
      YAL039C -
      transcr_25793 +
      YAL037C-B -
      transcr_20649 +
      YBL100C -
      transcr_7135 +
      YBL029C-A -
      transcr_11317 +
      YBL067C -
      transcr_25793 +
      YAL038W +
      transcr_7135 +
      YBL029W +


      I was trying to get something like this:



      transcr_7135 +
      YBL029C-A -
      transcr_7135 +
      YBL029W +
      transcr_11317 +
      YBL067C -
      transcr_20649 +
      YBL100C -
      transcr_25793 +
      YAL039C -
      transcr_25793 +
      YAL037C-B -
      transcr_25793 +
      YAL038W +


      Then, afterward, I was looking for something like this:



      transcr_7135 +
      YBL029C-A -
      YBL029W +
      transcr_11317 +
      YBL067C -
      transcr_20649 +
      YBL100C -
      transcr_25793 +
      YAL039C -
      YAL037C-B -
      YAL038W +


      I've scrolled through sort manual and some posts, but couldn't find anything that fit near this, just sort using numerical values to get odd lines...







      text-processing sort






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 35 mins ago









      Rui F Ribeiro

      39.5k1479133




      39.5k1479133










      asked 2 hours ago









      Lucas Farinazzo MarquesLucas Farinazzo Marques

      645




      645






















          4 Answers
          4






          active

          oldest

          votes


















          3














          Not exactly the sorting order you've showed, but maby right as well?



          $ cat input.txt|paste - -| sort -k1,1V -k2,2| tr "t" "n" | awk '{if($0 in line == 0) {line[$0]; print}}'
          transcr_7135 +
          YBL029C-A -
          YBL029W +
          transcr_11317 +
          YBL067C -
          transcr_20649 +
          YBL100C -
          transcr_25793 +
          YAL037C-B -
          YAL038W +
          YAL039C -





          share|improve this answer
























          • It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

            – Lucas Farinazzo Marques
            1 hour ago



















          5














          Pure gawk solution:



          awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"n"$0}
          END{PROCINFO["sorted_in"]="@ind_num_asc";
          for(i in a) printf "%s","transcr_"i""a[i]"n"}' file


          The trick is to sort indexes of array a numerically with a little help of gawk's PROCINFO special array.



          transcr_7135
          YBL029C-A -
          YBL029W +
          transcr_11317
          YBL067C -
          transcr_20649
          YBL100C -
          transcr_25793
          YAL039C -
          YAL037C-B -
          YAL038W +


          BTW, its a pity awk doesn't offer an option to sort naturally a.k.a. version sort (according to text with numbers).






          share|improve this answer

































            2














            for element in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
            do
            echo $element; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
            done


            Where a.txt is your input. Tested:



            [root@megatron ~]# cat a.txt
            transcr_25793 +
            YAL039C -
            transcr_25793 +
            YAL037C-B -
            transcr_20649 +
            YBL100C -
            transcr_7135 +
            YBL029C-A -
            transcr_11317 +
            YBL067C -
            transcr_25793 +
            YAL038W +
            transcr_7135 +
            YBL029W +
            [root@megatron ~]# for i in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
            do
            echo $i; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
            done
            transcr_7135
            YBL029C-A -
            YBL029W +
            transcr_11317
            YBL067C -
            transcr_20649
            YBL100C -
            transcr_25793
            YAL039C -
            YAL037C-B -
            YAL038W +
            [root@megatron ~]#





            share|improve this answer


























            • It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

              – Lucas Farinazzo Marques
              1 hour ago











            • I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

              – Zatarra
              1 hour ago













            • Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

              – Lucas Farinazzo Marques
              1 hour ago











            • You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

              – Zatarra
              1 hour ago













            • Now it worked, thanks!

              – Lucas Farinazzo Marques
              1 hour ago



















            2














            With GNU sort and assuming the lines don't contain TAB characters:



            paste - - < file | sort -V | tr 't' 'n' | awk '!seen[$0]++'


            Or sort -t$'t' -sk1,1V to preserve the original order for entries with identical odd lines like in your expected output.



            If you don't have GNU sort, and assuming the odd lines always follow that pattern, you can replace sort -V with sort -k1.9n.






            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%2f495272%2fhow-to-sort-by-odd-lines-then-remove-repeated-values%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              4 Answers
              4






              active

              oldest

              votes








              4 Answers
              4






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              3














              Not exactly the sorting order you've showed, but maby right as well?



              $ cat input.txt|paste - -| sort -k1,1V -k2,2| tr "t" "n" | awk '{if($0 in line == 0) {line[$0]; print}}'
              transcr_7135 +
              YBL029C-A -
              YBL029W +
              transcr_11317 +
              YBL067C -
              transcr_20649 +
              YBL100C -
              transcr_25793 +
              YAL037C-B -
              YAL038W +
              YAL039C -





              share|improve this answer
























              • It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

                – Lucas Farinazzo Marques
                1 hour ago
















              3














              Not exactly the sorting order you've showed, but maby right as well?



              $ cat input.txt|paste - -| sort -k1,1V -k2,2| tr "t" "n" | awk '{if($0 in line == 0) {line[$0]; print}}'
              transcr_7135 +
              YBL029C-A -
              YBL029W +
              transcr_11317 +
              YBL067C -
              transcr_20649 +
              YBL100C -
              transcr_25793 +
              YAL037C-B -
              YAL038W +
              YAL039C -





              share|improve this answer
























              • It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

                – Lucas Farinazzo Marques
                1 hour ago














              3












              3








              3







              Not exactly the sorting order you've showed, but maby right as well?



              $ cat input.txt|paste - -| sort -k1,1V -k2,2| tr "t" "n" | awk '{if($0 in line == 0) {line[$0]; print}}'
              transcr_7135 +
              YBL029C-A -
              YBL029W +
              transcr_11317 +
              YBL067C -
              transcr_20649 +
              YBL100C -
              transcr_25793 +
              YAL037C-B -
              YAL038W +
              YAL039C -





              share|improve this answer













              Not exactly the sorting order you've showed, but maby right as well?



              $ cat input.txt|paste - -| sort -k1,1V -k2,2| tr "t" "n" | awk '{if($0 in line == 0) {line[$0]; print}}'
              transcr_7135 +
              YBL029C-A -
              YBL029W +
              transcr_11317 +
              YBL067C -
              transcr_20649 +
              YBL100C -
              transcr_25793 +
              YAL037C-B -
              YAL038W +
              YAL039C -






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 1 hour ago









              finswimmerfinswimmer

              1762




              1762













              • It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

                – Lucas Farinazzo Marques
                1 hour ago



















              • It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

                – Lucas Farinazzo Marques
                1 hour ago

















              It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

              – Lucas Farinazzo Marques
              1 hour ago





              It doesn't show exactly the way I posted, but for my case it doesn't matter, thanks a lot!

              – Lucas Farinazzo Marques
              1 hour ago













              5














              Pure gawk solution:



              awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"n"$0}
              END{PROCINFO["sorted_in"]="@ind_num_asc";
              for(i in a) printf "%s","transcr_"i""a[i]"n"}' file


              The trick is to sort indexes of array a numerically with a little help of gawk's PROCINFO special array.



              transcr_7135
              YBL029C-A -
              YBL029W +
              transcr_11317
              YBL067C -
              transcr_20649
              YBL100C -
              transcr_25793
              YAL039C -
              YAL037C-B -
              YAL038W +


              BTW, its a pity awk doesn't offer an option to sort naturally a.k.a. version sort (according to text with numbers).






              share|improve this answer






























                5














                Pure gawk solution:



                awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"n"$0}
                END{PROCINFO["sorted_in"]="@ind_num_asc";
                for(i in a) printf "%s","transcr_"i""a[i]"n"}' file


                The trick is to sort indexes of array a numerically with a little help of gawk's PROCINFO special array.



                transcr_7135
                YBL029C-A -
                YBL029W +
                transcr_11317
                YBL067C -
                transcr_20649
                YBL100C -
                transcr_25793
                YAL039C -
                YAL037C-B -
                YAL038W +


                BTW, its a pity awk doesn't offer an option to sort naturally a.k.a. version sort (according to text with numbers).






                share|improve this answer




























                  5












                  5








                  5







                  Pure gawk solution:



                  awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"n"$0}
                  END{PROCINFO["sorted_in"]="@ind_num_asc";
                  for(i in a) printf "%s","transcr_"i""a[i]"n"}' file


                  The trick is to sort indexes of array a numerically with a little help of gawk's PROCINFO special array.



                  transcr_7135
                  YBL029C-A -
                  YBL029W +
                  transcr_11317
                  YBL067C -
                  transcr_20649
                  YBL100C -
                  transcr_25793
                  YAL039C -
                  YAL037C-B -
                  YAL038W +


                  BTW, its a pity awk doesn't offer an option to sort naturally a.k.a. version sort (according to text with numbers).






                  share|improve this answer















                  Pure gawk solution:



                  awk -F_ 'NR%2{i=$2;next}{a[i]=a[i]"n"$0}
                  END{PROCINFO["sorted_in"]="@ind_num_asc";
                  for(i in a) printf "%s","transcr_"i""a[i]"n"}' file


                  The trick is to sort indexes of array a numerically with a little help of gawk's PROCINFO special array.



                  transcr_7135
                  YBL029C-A -
                  YBL029W +
                  transcr_11317
                  YBL067C -
                  transcr_20649
                  YBL100C -
                  transcr_25793
                  YAL039C -
                  YAL037C-B -
                  YAL038W +


                  BTW, its a pity awk doesn't offer an option to sort naturally a.k.a. version sort (according to text with numbers).







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 22 mins ago

























                  answered 1 hour ago









                  jimmijjimmij

                  31k870105




                  31k870105























                      2














                      for element in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $element; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done


                      Where a.txt is your input. Tested:



                      [root@megatron ~]# cat a.txt
                      transcr_25793 +
                      YAL039C -
                      transcr_25793 +
                      YAL037C-B -
                      transcr_20649 +
                      YBL100C -
                      transcr_7135 +
                      YBL029C-A -
                      transcr_11317 +
                      YBL067C -
                      transcr_25793 +
                      YAL038W +
                      transcr_7135 +
                      YBL029W +
                      [root@megatron ~]# for i in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $i; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done
                      transcr_7135
                      YBL029C-A -
                      YBL029W +
                      transcr_11317
                      YBL067C -
                      transcr_20649
                      YBL100C -
                      transcr_25793
                      YAL039C -
                      YAL037C-B -
                      YAL038W +
                      [root@megatron ~]#





                      share|improve this answer


























                      • It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                        – Zatarra
                        1 hour ago













                      • Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                        – Zatarra
                        1 hour ago













                      • Now it worked, thanks!

                        – Lucas Farinazzo Marques
                        1 hour ago
















                      2














                      for element in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $element; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done


                      Where a.txt is your input. Tested:



                      [root@megatron ~]# cat a.txt
                      transcr_25793 +
                      YAL039C -
                      transcr_25793 +
                      YAL037C-B -
                      transcr_20649 +
                      YBL100C -
                      transcr_7135 +
                      YBL029C-A -
                      transcr_11317 +
                      YBL067C -
                      transcr_25793 +
                      YAL038W +
                      transcr_7135 +
                      YBL029W +
                      [root@megatron ~]# for i in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $i; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done
                      transcr_7135
                      YBL029C-A -
                      YBL029W +
                      transcr_11317
                      YBL067C -
                      transcr_20649
                      YBL100C -
                      transcr_25793
                      YAL039C -
                      YAL037C-B -
                      YAL038W +
                      [root@megatron ~]#





                      share|improve this answer


























                      • It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                        – Zatarra
                        1 hour ago













                      • Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                        – Zatarra
                        1 hour ago













                      • Now it worked, thanks!

                        – Lucas Farinazzo Marques
                        1 hour ago














                      2












                      2








                      2







                      for element in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $element; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done


                      Where a.txt is your input. Tested:



                      [root@megatron ~]# cat a.txt
                      transcr_25793 +
                      YAL039C -
                      transcr_25793 +
                      YAL037C-B -
                      transcr_20649 +
                      YBL100C -
                      transcr_7135 +
                      YBL029C-A -
                      transcr_11317 +
                      YBL067C -
                      transcr_25793 +
                      YAL038W +
                      transcr_7135 +
                      YBL029W +
                      [root@megatron ~]# for i in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $i; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done
                      transcr_7135
                      YBL029C-A -
                      YBL029W +
                      transcr_11317
                      YBL067C -
                      transcr_20649
                      YBL100C -
                      transcr_25793
                      YAL039C -
                      YAL037C-B -
                      YAL038W +
                      [root@megatron ~]#





                      share|improve this answer















                      for element in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $element; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done


                      Where a.txt is your input. Tested:



                      [root@megatron ~]# cat a.txt
                      transcr_25793 +
                      YAL039C -
                      transcr_25793 +
                      YAL037C-B -
                      transcr_20649 +
                      YBL100C -
                      transcr_7135 +
                      YBL029C-A -
                      transcr_11317 +
                      YBL067C -
                      transcr_25793 +
                      YAL038W +
                      transcr_7135 +
                      YBL029W +
                      [root@megatron ~]# for i in $(sed -n 'p;n' a.txt |sort -nk 1.9 |uniq |awk '{print $1}')
                      do
                      echo $i; cat a.txt |grep -A1 $i |grep -v trans |grep -v \\--
                      done
                      transcr_7135
                      YBL029C-A -
                      YBL029W +
                      transcr_11317
                      YBL067C -
                      transcr_20649
                      YBL100C -
                      transcr_25793
                      YAL039C -
                      YAL037C-B -
                      YAL038W +
                      [root@megatron ~]#






                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited 1 hour ago









                      andcoz

                      12.5k33039




                      12.5k33039










                      answered 2 hours ago









                      ZatarraZatarra

                      212




                      212













                      • It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                        – Zatarra
                        1 hour ago













                      • Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                        – Zatarra
                        1 hour ago













                      • Now it worked, thanks!

                        – Lucas Farinazzo Marques
                        1 hour ago



















                      • It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                        – Zatarra
                        1 hour ago













                      • Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                        – Lucas Farinazzo Marques
                        1 hour ago











                      • You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                        – Zatarra
                        1 hour ago













                      • Now it worked, thanks!

                        – Lucas Farinazzo Marques
                        1 hour ago

















                      It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                      – Lucas Farinazzo Marques
                      1 hour ago





                      It appeared this transcr_45 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_193 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_231 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. transcr_282 Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. and so on... Do you know what I can do?

                      – Lucas Farinazzo Marques
                      1 hour ago













                      I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                      – Zatarra
                      1 hour ago







                      I corrected. You have to use |grep -v \-- . Or just try to re-use the updated code.

                      – Zatarra
                      1 hour ago















                      Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                      – Lucas Farinazzo Marques
                      1 hour ago





                      Even when exactly copying your solution and even the file with the same name, it doesn't work out... It keeps showing the same error

                      – Lucas Farinazzo Marques
                      1 hour ago













                      You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                      – Zatarra
                      1 hour ago







                      You can download it from here: wget 54.38.222.163/sort.sh and run it with sh sort.sh . The text must be in a.txt

                      – Zatarra
                      1 hour ago















                      Now it worked, thanks!

                      – Lucas Farinazzo Marques
                      1 hour ago





                      Now it worked, thanks!

                      – Lucas Farinazzo Marques
                      1 hour ago











                      2














                      With GNU sort and assuming the lines don't contain TAB characters:



                      paste - - < file | sort -V | tr 't' 'n' | awk '!seen[$0]++'


                      Or sort -t$'t' -sk1,1V to preserve the original order for entries with identical odd lines like in your expected output.



                      If you don't have GNU sort, and assuming the odd lines always follow that pattern, you can replace sort -V with sort -k1.9n.






                      share|improve this answer






























                        2














                        With GNU sort and assuming the lines don't contain TAB characters:



                        paste - - < file | sort -V | tr 't' 'n' | awk '!seen[$0]++'


                        Or sort -t$'t' -sk1,1V to preserve the original order for entries with identical odd lines like in your expected output.



                        If you don't have GNU sort, and assuming the odd lines always follow that pattern, you can replace sort -V with sort -k1.9n.






                        share|improve this answer




























                          2












                          2








                          2







                          With GNU sort and assuming the lines don't contain TAB characters:



                          paste - - < file | sort -V | tr 't' 'n' | awk '!seen[$0]++'


                          Or sort -t$'t' -sk1,1V to preserve the original order for entries with identical odd lines like in your expected output.



                          If you don't have GNU sort, and assuming the odd lines always follow that pattern, you can replace sort -V with sort -k1.9n.






                          share|improve this answer















                          With GNU sort and assuming the lines don't contain TAB characters:



                          paste - - < file | sort -V | tr 't' 'n' | awk '!seen[$0]++'


                          Or sort -t$'t' -sk1,1V to preserve the original order for entries with identical odd lines like in your expected output.



                          If you don't have GNU sort, and assuming the odd lines always follow that pattern, you can replace sort -V with sort -k1.9n.







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited 1 hour ago

























                          answered 1 hour ago









                          Stéphane ChazelasStéphane Chazelas

                          301k55564916




                          301k55564916






























                              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%2f495272%2fhow-to-sort-by-odd-lines-then-remove-repeated-values%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

                              Statuo de Libereco

                              Tanganjiko

                              Liste der Baudenkmäler in Enneberg