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