Contrôler la longueur des lignes dans un fichier. [bash] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 14-10-2009 à 21:08:11
man indent
Marsh Posté le 14-10-2009 à 21:17:39
awk '{ if (length($0) > 40) { print "ligne N°"NR" fuckée" } }' /path/to/file
Marsh Posté le 14-10-2009 à 21:20:56
Est ce que l utilisation de awk prendra en compte le caractère de fin de ligne ?
@Black_lord : d après le man de indent il fonctionne pour les fichiers C or ce n'est pas mon cas.
Marsh Posté le 14-10-2009 à 21:43:36
il fonctionne pour ce que tu veux
Marsh Posté le 14-10-2009 à 22:00:35
Je viens d'essayer la commande avec awk.
Ce qui est pas mal c'est qu'il a pas l'air de me compter le retour chariot.
black_lord a écrit : il fonctionne pour ce que tu veux |
Ok, c'est bon a savoir.
Marsh Posté le 14-10-2009 à 22:31:31
En passant, toujours dans ce script j'utilise sed pour effacer les espaces inutiles en fin de ligne. Existe il un autre (et meilleur moyen) pour faire cela? ( j' ai pas regarde encore avec indent)
Et pour cette histoire de noms de variables avec des underscore vous avez une idée?
Marsh Posté le 15-10-2009 à 08:09:51
typiquement on écrit _var pour une variable interne ("private" en OO), qui n'a pas de sens à l'extérieur de la portée où elle est déclarée et utilisée
Marsh Posté le 15-10-2009 à 09:14:52
Bon j'ai encore une interrogation.
Dans mon script j'ai :
COLONNE_MAX=90
awk '{if(length($0) > $COLONNE_MAX) {print "+> ligne "NR" est trop longue"}}' $1
($1 est le fichier passe a mon script)
Seulement, quand je lance mon script, il m'indique que toutes les lignes dépasse 90 caractères. En fait, il ne doit pas prendre en compte la valeur de la variable ce qui est un peu gênant en fin de compte.
Awk ne fait pas de subsitution?
Edit : c'est bon j'ai trouve il suffit d'entourer la variable par ' '.
Marsh Posté le 14-10-2009 à 20:55:47
Bonjour,
J'ai fait un petit script pour traiter mes fichiers code sources. Et dans ces scripts je vérifie qu'aucune ligne ne dépasse une longueur fixée.
Pour ce faire j'utilise ce bout de script (totalement personnel) qui contrôle le fichier ligne par ligne et en cas de dépassement affiche le numéro de la ligne en cause.
($1 est le fichier que je passe en argumant au script.)
Je pense que cela n'est pas optimisé (ni peut etre trés correct) surtout quand le fichier en question fait 2000-3000 lignes. Existe-il un moyen plus rapide de faire cette opération?
Petite question subsidiaire, j'ai dans certains script que le nom des variables étaient définis avec un '_' devant (ex: _var1 et donc $_var1, etc.). Mais je ne comprends pas pourquoi.
Merci pour vos réponses.
---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)