Bonjour,

Je débute en script, soyez indulgents svp
Je veux dans une arborescence trouver les fichiers *.sh et afficher la première ligne si elle contient #! préfixée du nom du fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
echo SCRIPTS SH AVEC GREP 1**********************
for i in `find . -name '*.sh' 2>/dev/null`
do
	if head -n 1 $i | grep '#!' ;
	then 
		echo "$i : \c" ; head -n 1 $i;
	fi
done
Le résultat obtenu est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
SCRIPTS SH AVEC GREP 1**********************
#!/bin/sh
./analyse_liens_tables.sh : #!/bin/sh
#!/bin/sh
./comptage_occur_base.sh : #!/bin/sh
#!/bin/sh
./description_tables.sh : #!/bin/sh
#!/bin/sh
./script.sh : #!/bin/sh
#!/bin/sh
./recherche_scripts_tous.sh : #!/bin/sh
#!/bin/sh
./toto1/script.sh : #!/bin/sh
Le test fonctionne bien, l'affichage concaténé aussi mais je n'arrive pas à enlever les lignes #!/bin/sh.
J'ai essayé en utilisant la commande test ou les [] mais cela me déclenche une erreur de grep à chaque fichier.

Auriez vous une solution à me proposer svp ?
Merci d'avance pour les réponses.