sed or awk: remove numbers after a symbol












4














I would like to remove just the numbers and "_" after ">" symbol, for example:



>1_CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>2_R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>3000_N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


Expected Results:



>CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


I used sed "s/>[0-9][_]//g" but it removed ">" as well.










share|improve this question



























    4














    I would like to remove just the numbers and "_" after ">" symbol, for example:



    >1_CR-B_CR56_t
    MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
    >2_R-B_R46_t
    MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
    >3000_N-N274_M
    MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


    Expected Results:



    >CR-B_CR56_t
    MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
    >R-B_R46_t
    MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
    >N-N274_M
    MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


    I used sed "s/>[0-9][_]//g" but it removed ">" as well.










    share|improve this question

























      4












      4








      4







      I would like to remove just the numbers and "_" after ">" symbol, for example:



      >1_CR-B_CR56_t
      MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
      >2_R-B_R46_t
      MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
      >3000_N-N274_M
      MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


      Expected Results:



      >CR-B_CR56_t
      MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
      >R-B_R46_t
      MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
      >N-N274_M
      MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


      I used sed "s/>[0-9][_]//g" but it removed ">" as well.










      share|improve this question













      I would like to remove just the numbers and "_" after ">" symbol, for example:



      >1_CR-B_CR56_t
      MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
      >2_R-B_R46_t
      MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
      >3000_N-N274_M
      MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


      Expected Results:



      >CR-B_CR56_t
      MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
      >R-B_R46_t
      MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
      >N-N274_M
      MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV


      I used sed "s/>[0-9][_]//g" but it removed ">" as well.







      awk sed delete






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 13 at 21:40









      Paul

      1037




      1037






















          3 Answers
          3






          active

          oldest

          votes


















          8














          Just a slight modification from your sed command:



          sed 's/^>[0-9]+[_]/>/g'


          the s is the sed substitute command, it searches for the string on the left hand side and replaces it with the string on the right hand side. Instead of replacing it with nothing you can replace it with the > character that you would like to keep.



          ^ is used to specify that the match should only start at the beginning of a newline



          Additionally the * is being used to match more than a single digit.






          share|improve this answer























          • thanks. I tried so many options, but not this one.
            – Paul
            Dec 13 at 21:47






          • 3




            You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
            – glenn jackman
            Dec 13 at 21:56





















          1














          awk '{sub(/^>._|^>...._/,">")}1' file
          >CR-B_CR56_t
          MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
          >R-B_R46_t
          MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
          >N-N274_M
          MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





          share|improve this answer





























            0














            command:sed 's/^>[0-9]{1,9}_/>/g' filename


            output



            >CR-B_CR56_t
            MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
            >R-B_R46_t
            MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
            >N-N274_M
            MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





            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%2f487873%2fsed-or-awk-remove-numbers-after-a-symbol%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              8














              Just a slight modification from your sed command:



              sed 's/^>[0-9]+[_]/>/g'


              the s is the sed substitute command, it searches for the string on the left hand side and replaces it with the string on the right hand side. Instead of replacing it with nothing you can replace it with the > character that you would like to keep.



              ^ is used to specify that the match should only start at the beginning of a newline



              Additionally the * is being used to match more than a single digit.






              share|improve this answer























              • thanks. I tried so many options, but not this one.
                – Paul
                Dec 13 at 21:47






              • 3




                You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
                – glenn jackman
                Dec 13 at 21:56


















              8














              Just a slight modification from your sed command:



              sed 's/^>[0-9]+[_]/>/g'


              the s is the sed substitute command, it searches for the string on the left hand side and replaces it with the string on the right hand side. Instead of replacing it with nothing you can replace it with the > character that you would like to keep.



              ^ is used to specify that the match should only start at the beginning of a newline



              Additionally the * is being used to match more than a single digit.






              share|improve this answer























              • thanks. I tried so many options, but not this one.
                – Paul
                Dec 13 at 21:47






              • 3




                You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
                – glenn jackman
                Dec 13 at 21:56
















              8












              8








              8






              Just a slight modification from your sed command:



              sed 's/^>[0-9]+[_]/>/g'


              the s is the sed substitute command, it searches for the string on the left hand side and replaces it with the string on the right hand side. Instead of replacing it with nothing you can replace it with the > character that you would like to keep.



              ^ is used to specify that the match should only start at the beginning of a newline



              Additionally the * is being used to match more than a single digit.






              share|improve this answer














              Just a slight modification from your sed command:



              sed 's/^>[0-9]+[_]/>/g'


              the s is the sed substitute command, it searches for the string on the left hand side and replaces it with the string on the right hand side. Instead of replacing it with nothing you can replace it with the > character that you would like to keep.



              ^ is used to specify that the match should only start at the beginning of a newline



              Additionally the * is being used to match more than a single digit.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Dec 14 at 2:53

























              answered Dec 13 at 21:43









              Jesse_b

              11.7k23064




              11.7k23064












              • thanks. I tried so many options, but not this one.
                – Paul
                Dec 13 at 21:47






              • 3




                You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
                – glenn jackman
                Dec 13 at 21:56




















              • thanks. I tried so many options, but not this one.
                – Paul
                Dec 13 at 21:47






              • 3




                You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
                – glenn jackman
                Dec 13 at 21:56


















              thanks. I tried so many options, but not this one.
              – Paul
              Dec 13 at 21:47




              thanks. I tried so many options, but not this one.
              – Paul
              Dec 13 at 21:47




              3




              3




              You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
              – glenn jackman
              Dec 13 at 21:56






              You might want the line-start anchor (^) as well. And + instead of * for one or more digits.
              – glenn jackman
              Dec 13 at 21:56















              1














              awk '{sub(/^>._|^>...._/,">")}1' file
              >CR-B_CR56_t
              MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
              >R-B_R46_t
              MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
              >N-N274_M
              MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





              share|improve this answer


























                1














                awk '{sub(/^>._|^>...._/,">")}1' file
                >CR-B_CR56_t
                MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                >R-B_R46_t
                MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                >N-N274_M
                MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





                share|improve this answer
























                  1












                  1








                  1






                  awk '{sub(/^>._|^>...._/,">")}1' file
                  >CR-B_CR56_t
                  MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                  >R-B_R46_t
                  MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                  >N-N274_M
                  MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





                  share|improve this answer












                  awk '{sub(/^>._|^>...._/,">")}1' file
                  >CR-B_CR56_t
                  MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                  >R-B_R46_t
                  MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                  >N-N274_M
                  MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Dec 14 at 0:58









                  Claes Wikner

                  13713




                  13713























                      0














                      command:sed 's/^>[0-9]{1,9}_/>/g' filename


                      output



                      >CR-B_CR56_t
                      MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                      >R-B_R46_t
                      MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                      >N-N274_M
                      MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





                      share|improve this answer


























                        0














                        command:sed 's/^>[0-9]{1,9}_/>/g' filename


                        output



                        >CR-B_CR56_t
                        MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                        >R-B_R46_t
                        MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                        >N-N274_M
                        MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





                        share|improve this answer
























                          0












                          0








                          0






                          command:sed 's/^>[0-9]{1,9}_/>/g' filename


                          output



                          >CR-B_CR56_t
                          MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                          >R-B_R46_t
                          MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                          >N-N274_M
                          MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV





                          share|improve this answer












                          command:sed 's/^>[0-9]{1,9}_/>/g' filename


                          output



                          >CR-B_CR56_t
                          MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
                          >R-B_R46_t
                          MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
                          >N-N274_M
                          MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 15 hours ago









                          Praveen Kumar BS

                          1,176138




                          1,176138






























                              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%2f487873%2fsed-or-awk-remove-numbers-after-a-symbol%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

                              Сан-Квентин

                              Алькесар

                              Josef Freinademetz