J'essaie d'affiner mon code en me débarrassant des espaces blancs inutiles, des lignes vides et en équilibrant les parenthèses avec un espace entre elles :
int a = 4;
if ((a==4) || (b==5))
a++ ;
devrait changer en :
int a = 4;
if ( (a==4) || (b==5) )
a++ ;
Cela fonctionne pour les parenthèses et les lignes vides. Cependant, il oublie de réduire les espaces multiples à un seul espace :
int a = 4;
if ( (a==4) || (b==5) )
a++ ;
Voici mon script :
#!/bin/bash
# Script to refine code
#
filename=read.txt
sed 's/((/( (/g' $filename > new.txt
mv new.txt $filename
sed 's/))/) )/g' $filename > new.txt
mv new.txt $filename
sed 's/ +/ /g' $filename > new.txt
mv new.txt $filename
sed '/^$/d' $filename > new.txt
mv new.txt $filename
Par ailleurs, existe-t-il un moyen de rendre ce script plus concis, par exemple en supprimant ou en réduisant le nombre de commandes ?