Bonjour,
J'ai utilisé l'expressionpour extraire les enregistrements compris entre la ligne qui débute par D et celle qui débute par F.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -n /^D/,/^F/'p' fic_in > fic_out
Si j'ai le cas d'un fichier "fic_in"
Le problème est que le résultat obtenu avec le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 DLIGNE01..... LIGNE02....... LIGNE03....... LIGNE05.......... FLIGNE06....... DLIGNE07..... LIGNE08....... LIGNE09....... LIGNE10.......... FLIGNE11.......équivaut au contenu du fichier "fic_in". Autrement dit, le fic_out est identique à fic_in (rien de surprenant compte tenu du code).
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -n /^D/,/^F/'p' fic_in > fic_out
Ce que je cherche à faire, c'est avoir deux fichiers pour le coup :
fic1
fic2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DLIGNE01..... LIGNE02....... LIGNE03....... LIGNE05.......... FLIGNE06.......
Cette manière de faire va me permettre ensuite de rejeter les fichiers qui ne respectent pas la règle : entête doit toujours commencée par D et la fin du fichier par F. Ce qui peut correspondre au code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DLIGNE07..... LIGNE08....... LIGNE09....... LIGNE10.......... FLIGNE11.......
Avez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 D=`head -1 fic1 | cut -c 1-1` F=`tail -1 fic1 | cut -c 1-1` if [[ ${D} == "D" ]] && [[ ${F} == "F" ]] then "Fic à garder" else "Fic à rejeter" fi
Merci infiniment pour votre aide.
Partager