How do I center-align a column in UNIX?












0















I’m trying to center-align a column using the command column.



The output should look like this:



temperatures  
50
12
89
63


How can I do this?










share|improve this question
















bumped to the homepage by Community 2 hours ago


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.











  • 1





    How about your input? Does it only have this column left-aligned?

    – rahul
    May 1 '15 at 22:36











  • yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

    – billy klarr
    May 1 '15 at 22:48











  • I didn’t notice that you wanted to use the column command until I wrote my answer.

    – yellowantphil
    May 1 '15 at 23:11











  • If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

    – yellowantphil
    May 1 '15 at 23:21











  • What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

    – Peter.O
    May 2 '15 at 8:57


















0















I’m trying to center-align a column using the command column.



The output should look like this:



temperatures  
50
12
89
63


How can I do this?










share|improve this question
















bumped to the homepage by Community 2 hours ago


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.











  • 1





    How about your input? Does it only have this column left-aligned?

    – rahul
    May 1 '15 at 22:36











  • yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

    – billy klarr
    May 1 '15 at 22:48











  • I didn’t notice that you wanted to use the column command until I wrote my answer.

    – yellowantphil
    May 1 '15 at 23:11











  • If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

    – yellowantphil
    May 1 '15 at 23:21











  • What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

    – Peter.O
    May 2 '15 at 8:57
















0












0








0








I’m trying to center-align a column using the command column.



The output should look like this:



temperatures  
50
12
89
63


How can I do this?










share|improve this question
















I’m trying to center-align a column using the command column.



The output should look like this:



temperatures  
50
12
89
63


How can I do this?







shell columns






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 1 '15 at 23:20









yellowantphil

5521319




5521319










asked May 1 '15 at 22:27









billy klarrbilly klarr

294




294





bumped to the homepage by Community 2 hours ago


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.







bumped to the homepage by Community 2 hours ago


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.










  • 1





    How about your input? Does it only have this column left-aligned?

    – rahul
    May 1 '15 at 22:36











  • yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

    – billy klarr
    May 1 '15 at 22:48











  • I didn’t notice that you wanted to use the column command until I wrote my answer.

    – yellowantphil
    May 1 '15 at 23:11











  • If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

    – yellowantphil
    May 1 '15 at 23:21











  • What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

    – Peter.O
    May 2 '15 at 8:57
















  • 1





    How about your input? Does it only have this column left-aligned?

    – rahul
    May 1 '15 at 22:36











  • yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

    – billy klarr
    May 1 '15 at 22:48











  • I didn’t notice that you wanted to use the column command until I wrote my answer.

    – yellowantphil
    May 1 '15 at 23:11











  • If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

    – yellowantphil
    May 1 '15 at 23:21











  • What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

    – Peter.O
    May 2 '15 at 8:57










1




1





How about your input? Does it only have this column left-aligned?

– rahul
May 1 '15 at 22:36





How about your input? Does it only have this column left-aligned?

– rahul
May 1 '15 at 22:36













yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

– billy klarr
May 1 '15 at 22:48





yes. the input file is just 50 12 89 63 in a column. when i run the file i want it to be center aligned.

– billy klarr
May 1 '15 at 22:48













I didn’t notice that you wanted to use the column command until I wrote my answer.

– yellowantphil
May 1 '15 at 23:11





I didn’t notice that you wanted to use the column command until I wrote my answer.

– yellowantphil
May 1 '15 at 23:11













If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

– yellowantphil
May 1 '15 at 23:21





If you really need to use the column command, nothing comes to mind. It prints text left-aligned.

– yellowantphil
May 1 '15 at 23:21













What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

– Peter.O
May 2 '15 at 8:57







What do you want your numbers centered in relation to?. Your sample output does not show them being centered in relation to temperatures.

– Peter.O
May 2 '15 at 8:57












1 Answer
1






active

oldest

votes


















0














I wrote this answer before noticing that you want to use the column command, but if that isn’t a requirement, you can center text with this bash shell script:



#!/bin/bash
set -e # exit the script if something goes wrong

width=12
data="temperatures 50 12 89 63"

for word in $data; do
strlen=$(printf $word | wc -c)
w=$(( ($width - $strlen)/2 ))
printf "%${w}s%sn" "" $word
done


How it works:





  • $width is the column width

  • The for loop prints every word in $data


  • $strlen is the length of the current word, in bytes.


  • $w is the number of spaces to print before the word to make it centered.


  • printf prints $w spaces, followed by the word


Output:



temperatures
50
12
89
63


This script will only work for single-byte text encodings. You would need to change the strlen line to handle text containing a 🐱, for example.






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%2f199940%2fhow-do-i-center-align-a-column-in-unix%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I wrote this answer before noticing that you want to use the column command, but if that isn’t a requirement, you can center text with this bash shell script:



    #!/bin/bash
    set -e # exit the script if something goes wrong

    width=12
    data="temperatures 50 12 89 63"

    for word in $data; do
    strlen=$(printf $word | wc -c)
    w=$(( ($width - $strlen)/2 ))
    printf "%${w}s%sn" "" $word
    done


    How it works:





    • $width is the column width

    • The for loop prints every word in $data


    • $strlen is the length of the current word, in bytes.


    • $w is the number of spaces to print before the word to make it centered.


    • printf prints $w spaces, followed by the word


    Output:



    temperatures
    50
    12
    89
    63


    This script will only work for single-byte text encodings. You would need to change the strlen line to handle text containing a 🐱, for example.






    share|improve this answer






























      0














      I wrote this answer before noticing that you want to use the column command, but if that isn’t a requirement, you can center text with this bash shell script:



      #!/bin/bash
      set -e # exit the script if something goes wrong

      width=12
      data="temperatures 50 12 89 63"

      for word in $data; do
      strlen=$(printf $word | wc -c)
      w=$(( ($width - $strlen)/2 ))
      printf "%${w}s%sn" "" $word
      done


      How it works:





      • $width is the column width

      • The for loop prints every word in $data


      • $strlen is the length of the current word, in bytes.


      • $w is the number of spaces to print before the word to make it centered.


      • printf prints $w spaces, followed by the word


      Output:



      temperatures
      50
      12
      89
      63


      This script will only work for single-byte text encodings. You would need to change the strlen line to handle text containing a 🐱, for example.






      share|improve this answer




























        0












        0








        0







        I wrote this answer before noticing that you want to use the column command, but if that isn’t a requirement, you can center text with this bash shell script:



        #!/bin/bash
        set -e # exit the script if something goes wrong

        width=12
        data="temperatures 50 12 89 63"

        for word in $data; do
        strlen=$(printf $word | wc -c)
        w=$(( ($width - $strlen)/2 ))
        printf "%${w}s%sn" "" $word
        done


        How it works:





        • $width is the column width

        • The for loop prints every word in $data


        • $strlen is the length of the current word, in bytes.


        • $w is the number of spaces to print before the word to make it centered.


        • printf prints $w spaces, followed by the word


        Output:



        temperatures
        50
        12
        89
        63


        This script will only work for single-byte text encodings. You would need to change the strlen line to handle text containing a 🐱, for example.






        share|improve this answer















        I wrote this answer before noticing that you want to use the column command, but if that isn’t a requirement, you can center text with this bash shell script:



        #!/bin/bash
        set -e # exit the script if something goes wrong

        width=12
        data="temperatures 50 12 89 63"

        for word in $data; do
        strlen=$(printf $word | wc -c)
        w=$(( ($width - $strlen)/2 ))
        printf "%${w}s%sn" "" $word
        done


        How it works:





        • $width is the column width

        • The for loop prints every word in $data


        • $strlen is the length of the current word, in bytes.


        • $w is the number of spaces to print before the word to make it centered.


        • printf prints $w spaces, followed by the word


        Output:



        temperatures
        50
        12
        89
        63


        This script will only work for single-byte text encodings. You would need to change the strlen line to handle text containing a 🐱, for example.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited May 1 '15 at 23:14

























        answered May 1 '15 at 22:50









        yellowantphilyellowantphil

        5521319




        5521319






























            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%2f199940%2fhow-do-i-center-align-a-column-in-unix%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

            濃尾地震

            How to rewrite equation of hyperbola in standard form

            No ethernet ip address in my vocore2