tsv2layout

Des scripts pour imprimer les données dans TSV sous la forme d'un layout prédéfini - retour accueil

git clone git://bebou.netlib.re/tsv2layout
Log | Files | Refs | README |

tsv2layout.printf2 (547B)


      1 #! /bin/sh
      2 
      3 tmpd=$(mktemp -d)
      4 
      5 layout=$(< $1 sed -E 's/\$[a-zA-Z]+/%s/g')
      6 nbargs=$(echo "$layout" | grep -o '%s' | wc -l)
      7 maxargs=$(echo "4096/$nbargs*$nbargs" | bc)
      8 
      9 cat > $tmpd/in
     10 
     11 < $tmpd/in head -n1 | tr '	' '\n' | nl -n ln -w1 > $tmpd/vars
     12 
     13 for var in $(< $1 grep -wEo '\$[a-zA-Z]+' | tr -d '$');do
     14 	grep "$var" $tmpd/vars
     15 done |
     16 	cut -f1 | paste -s -d',' |
     17 	xargs -I{} awk -F'\t' -v col={} '
     18 	BEGIN{getline;split(col,cols,",")}
     19 	{ for (i=1;i<5;i++) { print $cols[i] } }' $tmpd/in |
     20 	xargs -d'\n' -n$maxargs printf "$layout\n"
     21 
     22 rm -rf $tmpd
     23