bash - Text in columns (like in a table) -


i have 1 column label , second column longer text inside line breaks in table.

label text: lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed              diam nonumy eirmod tempor invidunt ut labore et dolore magna              aliquyam erat, sed diam voluptua. @ vero eos et accusam et              justo duo dolores et ea rebum. stet clita kasd gubergren, no              sea takimata sanctus est lorem ipsum dolor sit amet. lorem              ipsum dolor sit amet, consetetur sadipscing elitr, sed diam.  

i tried:

paste label.txt long.txt | column -s $'\t' 

thank in advance!

the following bash script might you:

padded-paste.sh:

#!/bin/bash  label=$1 text=$2  # number of lines in text nline=$(wc -l ${text} | cut -f 1 -d' ')  # width of label padding=$(awk 'nr==1{ print length }' ${label})  # create temp directory tmpdir=$(mktemp -dt "$(basename $0).xxxxxxxxxx") templabel=${tmpdir}/label.tmp  # print first line of label file temp file: awk 'nr==1{ print }' ${label} > ${templabel}  # add blank padding temp label file: in $(seq 2 $nline);     printf "%*s\n" $padding "" >> ${templabel} done  # pasted padded lable long text paste -d' ' ${templabel} ${text} 

based on following inputs: label.txt:

label text: 

long.txt:

lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. @ vero eos et accusam et justo duo dolores et ea rebum. stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam. 

you can use like:

sh padded-paste.sh label.txt long.txt 

and output:

label text: lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy             eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam             voluptua. @ vero eos et accusam et justo duo dolores et ea rebum. stet             clita kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit             amet. lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam. 

Comments