How do I center-align a column in UNIX?
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
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.
add a comment |
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
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 thecolumn
command until I wrote my answer.
– yellowantphil
May 1 '15 at 23:11
If you really need to use thecolumn
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 totemperatures
.
– Peter.O
May 2 '15 at 8:57
add a comment |
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
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
shell columns
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 thecolumn
command until I wrote my answer.
– yellowantphil
May 1 '15 at 23:11
If you really need to use thecolumn
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 totemperatures
.
– Peter.O
May 2 '15 at 8:57
add a comment |
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 thecolumn
command until I wrote my answer.
– yellowantphil
May 1 '15 at 23:11
If you really need to use thecolumn
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 totemperatures
.
– 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
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
edited May 1 '15 at 23:14
answered May 1 '15 at 22:50
yellowantphilyellowantphil
5521319
5521319
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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