2013-10-07 7 views
0

J'utilise les lignes suivantes dans un script.script bash pour l'entrée gnuplot

foo=$1 

bar=$(printf ' , "%s" u ($1):($2) lw 8 ti' ${foo[@]} ${foo[@]} ${foo[@]} ${foo[@]} ) 

bar=${bar:2} 

echo $bar  

Cela produit la ligne suivante à la valeur de variable bar

"rdf_inter_fortran_05-25.xvg" u ($1):($2) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($2) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($2) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($2) lw 8 ti 

Est-il possible de modifier le script de sorte que la sortie est:

"rdf_inter_fortran_05-25.xvg" u ($1):($2) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($3) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($4) lw 8 ti , "rdf_inter_fortran_05-25.xvg" u ($1):($5) lw 8 ti 
+0

Euh .......... oui? –

+0

J'ai modifié la question !!! –

Répondre

1

Changer votre ligne printf à ce qui suit:

bar=$(printf ' , "%s" u ($1):($%s) lw 8 ti' ${foo[@]} "2" ${foo[@]} "3" ${foo[@]} "4" ${foo[@]} "5") 
0

Il semble que vous remplacez quelques $ 2 avec de nouvelles chaînes. Insérer cette ligne avant echo $bar:

bar=$(echo $bar | sed 's/$2/$5/4; s/$2/$4/3; s/$2/$3/2;') 

Cela remplace le 4ème, 3ème et 2ème apparition de 2 $ avec de nouvelles valeurs respectives 5 $, 4 $ et 3 $.

Questions connexes