Delete multiple columns using awk or sedsplit string with awk and delimiterUsing Regex Breaking a text on the last digit using linux tools like sed, or awkcsv file adding and removing characters from rowsCount the number of unique values based on two columns in a spreadsheetProblem extracting data from file using awkReplacing a Substring with sedawk - compare 2 files and print columns from both filesBash help: awk columnsRemoving multiple space using sedDelete 'N' no lines only on the Nth occurrence of a pattern in a file using the sed/awk command

What is the highest possible scrabble score for placing a single tile

Quoting Keynes in a lecture

How much theory knowledge is actually used while playing?

How would you translate "more" for use as an interface button?

Why can't the Brexit deadlock in the UK parliament be solved with a plurality vote?

Why do ¬, ∀ and ∃ have the same precedence?

Why does AES have exactly 10 rounds for a 128-bit key, 12 for 192 bits and 14 for a 256-bit key size?

Does "he squandered his car on drink" sound natural?

How to preserve electronics (computers, iPads and phones) for hundreds of years

The IT department bottlenecks progress, how should I handle this?

How can ping know if my host is down

Is there a nicer/politer/more positive alternative for "negates"?

Does an advisor owe his/her student anything? Will an advisor keep a PhD student only out of pity?

What would sports be like in a dystopia?

Which Article Helped Get Rid of Technobabble in RPGs?

Why is it that I can sometimes guess the next note?

Circuit Analysis: Obtaining Close Loop OP - AMP Transfer function

Why is the Sun approximated as a black body at ~ 5800 K?

PTIJ: Why is Haman obsessed with Bose?

Stack Interview Code methods made from class Node and Smart Pointers

C++ copy constructor called at return

What is going on with gets(stdin) on the site coderbyte?

Pre-mixing cryogenic fuels and using only one fuel tank

What to do when eye contact makes your coworker uncomfortable?



Delete multiple columns using awk or sed


split string with awk and delimiterUsing Regex Breaking a text on the last digit using linux tools like sed, or awkcsv file adding and removing characters from rowsCount the number of unique values based on two columns in a spreadsheetProblem extracting data from file using awkReplacing a Substring with sedawk - compare 2 files and print columns from both filesBash help: awk columnsRemoving multiple space using sedDelete 'N' no lines only on the Nth occurrence of a pattern in a file using the sed/awk command













1















I have a database with 6037 space-separated columns and 450 rows like the one below:



1807 1452 1598 1 6.655713 A B A B ... 0 
1808 1452 1763 1 9.362033 0 0 A B ... A
1809 1452 1527 2 6.728534 A B A A ... B
1810 1452 1367 2 9.4055 A B A A B ... A
... ... ... ... ... ... ... ... ... ...
1812 1452 1258 1 6.363032 0 0 A B ... B


I want to get a new database with only the first 676 columns.



Preferably, some form that uses awk or sed command.










share|improve this question









New contributor




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




















  • The delimiter is the space.

    – andrec
    1 hour ago















1















I have a database with 6037 space-separated columns and 450 rows like the one below:



1807 1452 1598 1 6.655713 A B A B ... 0 
1808 1452 1763 1 9.362033 0 0 A B ... A
1809 1452 1527 2 6.728534 A B A A ... B
1810 1452 1367 2 9.4055 A B A A B ... A
... ... ... ... ... ... ... ... ... ...
1812 1452 1258 1 6.363032 0 0 A B ... B


I want to get a new database with only the first 676 columns.



Preferably, some form that uses awk or sed command.










share|improve this question









New contributor




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




















  • The delimiter is the space.

    – andrec
    1 hour ago













1












1








1








I have a database with 6037 space-separated columns and 450 rows like the one below:



1807 1452 1598 1 6.655713 A B A B ... 0 
1808 1452 1763 1 9.362033 0 0 A B ... A
1809 1452 1527 2 6.728534 A B A A ... B
1810 1452 1367 2 9.4055 A B A A B ... A
... ... ... ... ... ... ... ... ... ...
1812 1452 1258 1 6.363032 0 0 A B ... B


I want to get a new database with only the first 676 columns.



Preferably, some form that uses awk or sed command.










share|improve this question









New contributor




andrec 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 database with 6037 space-separated columns and 450 rows like the one below:



1807 1452 1598 1 6.655713 A B A B ... 0 
1808 1452 1763 1 9.362033 0 0 A B ... A
1809 1452 1527 2 6.728534 A B A A ... B
1810 1452 1367 2 9.4055 A B A A B ... A
... ... ... ... ... ... ... ... ... ...
1812 1452 1258 1 6.363032 0 0 A B ... B


I want to get a new database with only the first 676 columns.



Preferably, some form that uses awk or sed command.







text-processing sed awk






share|improve this question









New contributor




andrec 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




andrec 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 39 mins ago









dessert

24.7k672105




24.7k672105






New contributor




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









asked 2 hours ago









andrecandrec

61




61




New contributor




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





New contributor





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






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












  • The delimiter is the space.

    – andrec
    1 hour ago

















  • The delimiter is the space.

    – andrec
    1 hour ago
















The delimiter is the space.

– andrec
1 hour ago





The delimiter is the space.

– andrec
1 hour ago










2 Answers
2






active

oldest

votes


















4
















If the column delimiter in your file is a single character, e.g. a space, cut can do that easily:



cut -d' ' -f-676 <in >out


This prints only the space-separated columns from the first to the 676th.



If you need e.g. every whitespace character to count as a delimiter, a sed solution is:



sed -r 's/s+S+//677g' <in >out


This replaces every column (= at least one whitespace character followed by at least one non-whitespace character) beginning with the 677th with nothing. Using character groups you can specify any set of delimiters you need, e.g. for “4”, “#” and “K”:



sed -r 's/[4#K]+[^4#K]+//677g' <in >out


For a reasonable awk approach kindly refer to steeldriver’s answer, but here is another one looping over the columns and only printing them (separated by FS) if their number is <= 676:



awk 'for (i=1;i<=676;i++) printf (i==1?"":FS)$i; print ""' <in >out


For a character group you have to specify the output field separator for the output, e.g. for [4#K] and "sep":




awk -F'[4#K]' 'for (i=1;i<=676;i++) printf (i==1?"":"sep")$i; print ""' <in >out





share|improve this answer
































    1














    For a single-character delimiter (such as space or comma) I would recommend using the cut command over either awk or sed.



    However since you asked about awk specifically, I think a reasonable way to do it would be to decrement the field count:



    awk -v last=676 'while(NF>last) NF-- 1' datafile


    Tested in GNU Awk (gawk) and mawk.






    share|improve this answer
























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "89"
      ;
      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: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      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
      );



      );






      andrec 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%2faskubuntu.com%2fquestions%2f1127670%2fdelete-multiple-columns-using-awk-or-sed%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









      4
















      If the column delimiter in your file is a single character, e.g. a space, cut can do that easily:



      cut -d' ' -f-676 <in >out


      This prints only the space-separated columns from the first to the 676th.



      If you need e.g. every whitespace character to count as a delimiter, a sed solution is:



      sed -r 's/s+S+//677g' <in >out


      This replaces every column (= at least one whitespace character followed by at least one non-whitespace character) beginning with the 677th with nothing. Using character groups you can specify any set of delimiters you need, e.g. for “4”, “#” and “K”:



      sed -r 's/[4#K]+[^4#K]+//677g' <in >out


      For a reasonable awk approach kindly refer to steeldriver’s answer, but here is another one looping over the columns and only printing them (separated by FS) if their number is <= 676:



      awk 'for (i=1;i<=676;i++) printf (i==1?"":FS)$i; print ""' <in >out


      For a character group you have to specify the output field separator for the output, e.g. for [4#K] and "sep":




      awk -F'[4#K]' 'for (i=1;i<=676;i++) printf (i==1?"":"sep")$i; print ""' <in >out





      share|improve this answer





























        4
















        If the column delimiter in your file is a single character, e.g. a space, cut can do that easily:



        cut -d' ' -f-676 <in >out


        This prints only the space-separated columns from the first to the 676th.



        If you need e.g. every whitespace character to count as a delimiter, a sed solution is:



        sed -r 's/s+S+//677g' <in >out


        This replaces every column (= at least one whitespace character followed by at least one non-whitespace character) beginning with the 677th with nothing. Using character groups you can specify any set of delimiters you need, e.g. for “4”, “#” and “K”:



        sed -r 's/[4#K]+[^4#K]+//677g' <in >out


        For a reasonable awk approach kindly refer to steeldriver’s answer, but here is another one looping over the columns and only printing them (separated by FS) if their number is <= 676:



        awk 'for (i=1;i<=676;i++) printf (i==1?"":FS)$i; print ""' <in >out


        For a character group you have to specify the output field separator for the output, e.g. for [4#K] and "sep":




        awk -F'[4#K]' 'for (i=1;i<=676;i++) printf (i==1?"":"sep")$i; print ""' <in >out





        share|improve this answer



























          4












          4








          4









          If the column delimiter in your file is a single character, e.g. a space, cut can do that easily:



          cut -d' ' -f-676 <in >out


          This prints only the space-separated columns from the first to the 676th.



          If you need e.g. every whitespace character to count as a delimiter, a sed solution is:



          sed -r 's/s+S+//677g' <in >out


          This replaces every column (= at least one whitespace character followed by at least one non-whitespace character) beginning with the 677th with nothing. Using character groups you can specify any set of delimiters you need, e.g. for “4”, “#” and “K”:



          sed -r 's/[4#K]+[^4#K]+//677g' <in >out


          For a reasonable awk approach kindly refer to steeldriver’s answer, but here is another one looping over the columns and only printing them (separated by FS) if their number is <= 676:



          awk 'for (i=1;i<=676;i++) printf (i==1?"":FS)$i; print ""' <in >out


          For a character group you have to specify the output field separator for the output, e.g. for [4#K] and "sep":




          awk -F'[4#K]' 'for (i=1;i<=676;i++) printf (i==1?"":"sep")$i; print ""' <in >out





          share|improve this answer

















          If the column delimiter in your file is a single character, e.g. a space, cut can do that easily:



          cut -d' ' -f-676 <in >out


          This prints only the space-separated columns from the first to the 676th.



          If you need e.g. every whitespace character to count as a delimiter, a sed solution is:



          sed -r 's/s+S+//677g' <in >out


          This replaces every column (= at least one whitespace character followed by at least one non-whitespace character) beginning with the 677th with nothing. Using character groups you can specify any set of delimiters you need, e.g. for “4”, “#” and “K”:



          sed -r 's/[4#K]+[^4#K]+//677g' <in >out


          For a reasonable awk approach kindly refer to steeldriver’s answer, but here is another one looping over the columns and only printing them (separated by FS) if their number is <= 676:



          awk 'for (i=1;i<=676;i++) printf (i==1?"":FS)$i; print ""' <in >out


          For a character group you have to specify the output field separator for the output, e.g. for [4#K] and "sep":




          awk -F'[4#K]' 'for (i=1;i<=676;i++) printf (i==1?"":"sep")$i; print ""' <in >out






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 1 hour ago

























          answered 2 hours ago









          dessertdessert

          24.7k672105




          24.7k672105























              1














              For a single-character delimiter (such as space or comma) I would recommend using the cut command over either awk or sed.



              However since you asked about awk specifically, I think a reasonable way to do it would be to decrement the field count:



              awk -v last=676 'while(NF>last) NF-- 1' datafile


              Tested in GNU Awk (gawk) and mawk.






              share|improve this answer





























                1














                For a single-character delimiter (such as space or comma) I would recommend using the cut command over either awk or sed.



                However since you asked about awk specifically, I think a reasonable way to do it would be to decrement the field count:



                awk -v last=676 'while(NF>last) NF-- 1' datafile


                Tested in GNU Awk (gawk) and mawk.






                share|improve this answer



























                  1












                  1








                  1







                  For a single-character delimiter (such as space or comma) I would recommend using the cut command over either awk or sed.



                  However since you asked about awk specifically, I think a reasonable way to do it would be to decrement the field count:



                  awk -v last=676 'while(NF>last) NF-- 1' datafile


                  Tested in GNU Awk (gawk) and mawk.






                  share|improve this answer















                  For a single-character delimiter (such as space or comma) I would recommend using the cut command over either awk or sed.



                  However since you asked about awk specifically, I think a reasonable way to do it would be to decrement the field count:



                  awk -v last=676 'while(NF>last) NF-- 1' datafile


                  Tested in GNU Awk (gawk) and mawk.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 57 mins ago

























                  answered 1 hour ago









                  steeldriversteeldriver

                  69.8k11114186




                  69.8k11114186




















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









                      draft saved

                      draft discarded


















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












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











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














                      Thanks for contributing an answer to Ask Ubuntu!


                      • 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%2faskubuntu.com%2fquestions%2f1127670%2fdelete-multiple-columns-using-awk-or-sed%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

                      Oświęcim Innehåll Historia | Källor | Externa länkar | Navigeringsmeny50°2′18″N 19°13′17″Ö / 50.03833°N 19.22139°Ö / 50.03833; 19.2213950°2′18″N 19°13′17″Ö / 50.03833°N 19.22139°Ö / 50.03833; 19.221393089658Nordisk familjebok, AuschwitzInsidan tro och existensJewish Community i OświęcimAuschwitz Jewish Center: MuseumAuschwitz Jewish Center

                      Valle di Casies Indice Geografia fisica | Origini del nome | Storia | Società | Amministrazione | Sport | Note | Bibliografia | Voci correlate | Altri progetti | Collegamenti esterni | Menu di navigazione46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)Sito istituzionaleAstat Censimento della popolazione 2011 - Determinazione della consistenza dei tre gruppi linguistici della Provincia Autonoma di Bolzano-Alto Adige - giugno 2012Numeri e fattiValle di CasiesDato IstatTabella dei gradi/giorno dei Comuni italiani raggruppati per Regione e Provincia26 agosto 1993, n. 412Heraldry of the World: GsiesStatistiche I.StatValCasies.comWikimedia CommonsWikimedia CommonsValle di CasiesSito ufficialeValle di CasiesMM14870458910042978-6

                      Typsetting diagram chases (with TikZ?) Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to define the default vertical distance between nodes?Draw edge on arcNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingLine up nested tikz enviroments or how to get rid of themHow to place nodes in an absolute coordinate system in tikzCommutative diagram with curve connecting between nodesTikz with standalone: pinning tikz coordinates to page cmDrawing a Decision Diagram with Tikz and layout manager