[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [totalement HS] Trouver les fichiers fortran avec qqch dans les colonnes superieures a 72



Grégory Bulot a écrit :
> Alain Baeckeroot <alain.baeckeroot@laposte.net> à écrit le Wed, 15 Jul
> 2009 12:07:34 +0200
> 
> 
>> pas subtil du tout
>> $ cat fichier.f77 |cut -c73- |sort -u |wc -l
>> si ce n'est pas 0 il y a qq chose.
>>
> 
> 
> 
> erf j'avais encore moins subtil (script une ligne) : 
>  L=1 ; cat < fichier | while true ; do read ligne ;
> NBcar=${#ligne} ; if (( $NBcar > 73)) ; then echo "Ligne $L = $NBcar" ;
> fi ;  L=$(($L + 1)) ; done | more
> 

voilà ou j'en suis :
#!/bin/sh
for file in *.f ;do
L=1
cat $file | grep -v "C" | while read ligne
do
NBcar=${#ligne}
if [ "$NBcar" -ge "73" ]; then
echo  -e
'\E[34;40m'"\033[1m++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\033[0m";
tput sgr0
echo  -e
'\E[34;40m'"\033[1m------------------------------------------------------------------------\033[0m";
tput sgr0
echo  -e '\E[34;40m'"\033[1mfile : $file : Line $L = $NBcar\033[0m";
tput sgr0
echo  -e
'\E[34;40m'"\033[1m------------------------------------------------------------------------\033[0m";
tput sgr0
echo  -e
'\E[34;40m'"\033[1m++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\033[0m";
tput sgr0
echo " "
echo "Line :"
echo $ligne
echo " "
echo " "
echo " "
sleep 1
fi
L=$(($L + 1))
done
done
exit



ça marchait pas avec "while true ; do read ligne ;", il faut mettre
"while read ligne; do".

Sinon encore une question je veux eviter de tester les commentaires,
d'ou pour l'instant mon "cat $file | grep -v "C"". mais c'est moche et
surtout assez dangereux car je zappe tous les CALL par exemple...

je cherche donc une regexp qui teste sur la premiere colonne. une idée ?

Merci






Reply to: