Bonjour
j'ai un fichier qui se présente avec des lignes qui n'ont pas un NF fixe, car un des champs (le nom, ici en $3 en première ligne) est parfois composé d'espaces :
Je souhaite extraire ce nom en totalité. J'ai tenté via index, en tentant d'extraire les données entre le début du $3 et le celui de l'avant dernier champ (NF-1) moins 1 position, çad avec index et un calcul de longueur adéquate :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 abc 2Dtoto nom1 2 2019aaa def 2Dtiti nom2 ext -4 2019bbb ghi 2Dtutu nom3 extA extB 3 2019ccc
Malheureusement, ça ne marche pas pour la ligne 1 et la ligne 3 : l'index trouve l'occurrence de $(NF-1) [='2' ou '3' pour ces lignes] bien avant cette position (càd en $2 et $3 respectivement).
Code : Sélectionner tout - Visualiser dans une fenêtre à part nom = substr($0,index($0,$3),index($0,$(NF-1))-index($0,$3)-1)
Question : n'y a-t-il pas un moyen de connaitre les position dans $0 de chaque champ $i (de 1 à NF) ?
Merci pour toute idée
Partager