Print table with empty columns for consecutive delimiters

Clash Royale CLAN TAG#URR8PPP
I typically use column to convert input into a table, eg:
$ echo 'atbtcndtetf' | column -t -s $'t'
a b c
d e f
However it collapses empty columns eg:
$ echo 'atbtcndttf' | column -t -s $'t'
a b c
d f
Rather than printing an empty column when there are consecutive delimiters. This is what I would like, using column or otherwise:
a b c
d f
shell text-formatting columns
add a comment |
I typically use column to convert input into a table, eg:
$ echo 'atbtcndtetf' | column -t -s $'t'
a b c
d e f
However it collapses empty columns eg:
$ echo 'atbtcndttf' | column -t -s $'t'
a b c
d f
Rather than printing an empty column when there are consecutive delimiters. This is what I would like, using column or otherwise:
a b c
d f
shell text-formatting columns
1
Instead ofechotryprintf
– Romeo Ninov
Jan 23 at 11:53
2
The questioner is clearly using a shell where-eis implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about thecolumncommand. Imagine that the input of thecolumncommand is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.
– JdeBP
Jan 23 at 12:14
add a comment |
I typically use column to convert input into a table, eg:
$ echo 'atbtcndtetf' | column -t -s $'t'
a b c
d e f
However it collapses empty columns eg:
$ echo 'atbtcndttf' | column -t -s $'t'
a b c
d f
Rather than printing an empty column when there are consecutive delimiters. This is what I would like, using column or otherwise:
a b c
d f
shell text-formatting columns
I typically use column to convert input into a table, eg:
$ echo 'atbtcndtetf' | column -t -s $'t'
a b c
d e f
However it collapses empty columns eg:
$ echo 'atbtcndttf' | column -t -s $'t'
a b c
d f
Rather than printing an empty column when there are consecutive delimiters. This is what I would like, using column or otherwise:
a b c
d f
shell text-formatting columns
shell text-formatting columns
edited Jan 23 at 12:07
Jeff Schaller
41.2k1056131
41.2k1056131
asked Jan 23 at 11:49
tekumaratekumara
1083
1083
1
Instead ofechotryprintf
– Romeo Ninov
Jan 23 at 11:53
2
The questioner is clearly using a shell where-eis implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about thecolumncommand. Imagine that the input of thecolumncommand is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.
– JdeBP
Jan 23 at 12:14
add a comment |
1
Instead ofechotryprintf
– Romeo Ninov
Jan 23 at 11:53
2
The questioner is clearly using a shell where-eis implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about thecolumncommand. Imagine that the input of thecolumncommand is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.
– JdeBP
Jan 23 at 12:14
1
1
Instead of
echo try printf– Romeo Ninov
Jan 23 at 11:53
Instead of
echo try printf– Romeo Ninov
Jan 23 at 11:53
2
2
The questioner is clearly using a shell where
-e is implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about the column command. Imagine that the input of the column command is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.– JdeBP
Jan 23 at 12:14
The questioner is clearly using a shell where
-e is implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about the column command. Imagine that the input of the column command is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.– JdeBP
Jan 23 at 12:14
add a comment |
1 Answer
1
active
oldest
votes
If you use GNU column:
-n
By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
printf 'atbtcndttfn' | column -t -n -s $'t'
Output:
a b c
d f
If GNU column is not available, you can use sed to add a space (or something else, e.g. a -) between the tabs:
printf 'atbtcndttfn' | sed -e ':loop; s/tt/t-t/; t loop' | column -t -s $'t'
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'
– tekumara
Jan 24 at 3:21
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%2f496193%2fprint-table-with-empty-columns-for-consecutive-delimiters%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
If you use GNU column:
-n
By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
printf 'atbtcndttfn' | column -t -n -s $'t'
Output:
a b c
d f
If GNU column is not available, you can use sed to add a space (or something else, e.g. a -) between the tabs:
printf 'atbtcndttfn' | sed -e ':loop; s/tt/t-t/; t loop' | column -t -s $'t'
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'
– tekumara
Jan 24 at 3:21
add a comment |
If you use GNU column:
-n
By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
printf 'atbtcndttfn' | column -t -n -s $'t'
Output:
a b c
d f
If GNU column is not available, you can use sed to add a space (or something else, e.g. a -) between the tabs:
printf 'atbtcndttfn' | sed -e ':loop; s/tt/t-t/; t loop' | column -t -s $'t'
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'
– tekumara
Jan 24 at 3:21
add a comment |
If you use GNU column:
-n
By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
printf 'atbtcndttfn' | column -t -n -s $'t'
Output:
a b c
d f
If GNU column is not available, you can use sed to add a space (or something else, e.g. a -) between the tabs:
printf 'atbtcndttfn' | sed -e ':loop; s/tt/t-t/; t loop' | column -t -s $'t'
If you use GNU column:
-n
By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
printf 'atbtcndttfn' | column -t -n -s $'t'
Output:
a b c
d f
If GNU column is not available, you can use sed to add a space (or something else, e.g. a -) between the tabs:
printf 'atbtcndttfn' | sed -e ':loop; s/tt/t-t/; t loop' | column -t -s $'t'
edited Jan 23 at 16:05
answered Jan 23 at 11:56
RoVoRoVo
3,141216
3,141216
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'
– tekumara
Jan 24 at 3:21
add a comment |
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'
– tekumara
Jan 24 at 3:21
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:
printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'– tekumara
Jan 24 at 3:21
Thanks for the sed suggestion! I'm using Mac OS X so don't have GNU column or GNU sed, so this is what ended up working for me:
printf 'atbtcndttfn' | sed -$'s/tt/t-t/g' | column -t -s $'t'– tekumara
Jan 24 at 3:21
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%2f496193%2fprint-table-with-empty-columns-for-consecutive-delimiters%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
Instead of
echotryprintf– Romeo Ninov
Jan 23 at 11:53
2
The questioner is clearly using a shell where
-eis implied. We have a whole family of duplicate Q&As about that, starting from unix.stackexchange.com/questions/65803 . But that is not the focus of this question, which is about thecolumncommand. Imagine that the input of thecolumncommand is whatever is necessary to yield TAB-delimited fields within LF-delimited records, some of which are empty.– JdeBP
Jan 23 at 12:14