Equivalent de la fonction str_pad de PHP en shell
Bonjour,
Je viens d'écrire un script que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#!/bin/ksh
# --------------------------------------------------------#
# Affiche les jobs en START
# --------------------------------------------------------#
TEMPFILE=/tmp/tmp_file
PRINTFILE=/tmp/tmp_result_file
cautil select tjob id=*,*,* runstat=start list tjob|awk '/Jobset:/,/End:/'|grep -v TJOB > $TEMPFILE
awk ' /Jobset/ {
jobset=$2 ; nb=NF ; getline ; # jobset
job=$2 ; nb=NF ; getline ; # job
qual=$4 ; nb=NF ; getline ; # qualifier
nb=NF ; getline ;
$1 = "" ; desc=$0 ; nb=NF ; getline ; # description
if ($3 ~ /START/) { etat="START" } ; nb=NF ; getline ; # Calendar
nb=NF ; getline ; # LIGNE 08 Actual Queue
nb=NF ; getline ; # LIGNE 09 Anycpu
nb=NF ; getline ; # LIGNE 10 Priority
nb=NF ; getline ; # LIGNE 11 Job Type
nb=NF ; getline ; # LIGNE 12 Abend action
nb=NF ; getline ; # LIGNE 13 Abort Count
nb=NF ; getline ; # LIGNE 14 Scheduled
nb=NF ; getline ; # LIGNE 15 early
nb=NF ; getline ; # LIGNE 16 Must Start
nb=NF ; getline ; # LIGNE 17 Start and End
StartD=$2 ; StartT=$3 ;
if ( nb > 1 ) { printf("\t [ %-s.%-s ] [ %-s ] [ %-s ] [%-s ] [ %-s ] [ %-s ]\n",jobset,job,qual,etat,desc,StartD,StartT) }
}
END {} ' $TEMPFILE > $PRINTFILE
cat $PRINTFILE
|
Le résultat retourné est le suivant :
Code:
1 2 3 4
|
[ pared000.pared ] [ 0301 ] [ START ] [ Generation echeancier niveau ] [ 11/03/2007 ] [ 05:50:29.00 ]
[ psybc000.psyckbar ] [ 0301 ] [ START ] [ BCV Arpege : Check derniere synchro ] [ 11/03/2007 ] [ 07:30:24.00 ]
|
Ce que je cherche à faire c'est aligner correctement les colonnes dans mon résultat. Je cherche donc l'équivalent de la fonction str_pad() de php mais en shell et si inexistante quelle serait la méthode pour y arriver.
Merci de votre aide
Stéphane