Premier n° de ligne d'un fichier avec nb de colonnes en bash
CB8
Messages postés
4
Statut
Membre
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
Bonjour à tous,
Nouveau membre de CCM, je vous soumets cette question qui concerne une programmation en bash linux.
Je cherche à identifier la première ligne d'un fichier ASCII dont le nombre de caractères dépasse une valeur donnée (par exemple 100). La raison est que je veux ignorer les premières lignes qui contiennent des informations qui constituent l'en-tête et ne me sont pas utiles, sachant que le nombre de lignes de l'entête est variable d'un fichier à l'autre.
Pour détecter la première ligne que je dois traiter, je sais seulement que son nombre de caractères est supérieur à celui des lignes de l'entête.
Une méthode triviale, mais peu élégante consiste à programmer une boucle du type:
Pourrait-on simplifier et compacter une telle opération avec une série de commandes bash en pipe?
Merci de votre aide :-)
Nouveau membre de CCM, je vous soumets cette question qui concerne une programmation en bash linux.
Je cherche à identifier la première ligne d'un fichier ASCII dont le nombre de caractères dépasse une valeur donnée (par exemple 100). La raison est que je veux ignorer les premières lignes qui contiennent des informations qui constituent l'en-tête et ne me sont pas utiles, sachant que le nombre de lignes de l'entête est variable d'un fichier à l'autre.
Pour détecter la première ligne que je dois traiter, je sais seulement que son nombre de caractères est supérieur à celui des lignes de l'entête.
Une méthode triviale, mais peu élégante consiste à programmer une boucle du type:
max_colonnes=100
num_ligne=0
while read ligne
do
num_ligne=$((num_ligne + 1));
if [ ${#ligne} -gt $max_colonnes ]
then
break
fi
done < $nom_fichier
Pourrait-on simplifier et compacter une telle opération avec une série de commandes bash en pipe?
Merci de votre aide :-)
A voir également:
- Premier n° de ligne d'un fichier avec nb de colonnes en bash
- Fichier bin - Guide
- Partage de photos en ligne - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
7 réponses
Salut, merci de ta réponse.
Je ne veux pas afficher les lignes de plus de 100 caractères, je cherche juste à connaître le n° de ligne de la première, sans l'afficher.
Je ne veux pas afficher les lignes de plus de 100 caractères, je cherche juste à connaître le n° de ligne de la première, sans l'afficher.
affiche le No de la première ligne de plus de 100 car. et termine
awk 'length()>100 {print NR; exit}' fichier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question