
 Envoyé par 
N_BaH
					
				 
				
			
		 
	 
 Merci pour ce petit tuto, ca va me servir pour la suite 
	
		
			
			
				
					
 Envoyé par 
zipe31
					
				 
				Salut,
Ça me parait un peu lourd comme code 
Une solution avec "sed" (par contre je n'ai pas pris en compte le fait que 2 lignes qui se suivent n'ont pas de correspondance sur le 1er champ).
Résultat sur la sortie standard (écran) :
	
	1 2 3 4 5 6 7 8 9
   | $ cat brol 
20062012;0810
20062012;1812
21062012;0836
21062012;2035
 
$ sed -rn 'N;s/([^;]*;)(.*)\n(\1)(.*)/\1\2;\4/p' brol 
20062012;0810;1812
21062012;0836;2035  | 
 Résultat dans un fichier :
	
	1 2 3 4 5 6 7
   | $ sed -rn 'N;s/([^;]*;)(.*)\n(\1)(.*)/\1\2;\4/w fich' brol 
 
$ cat fich
20062012;0810;1812
21062012;0836;2035
 
$  | 
 
 
			
		 
	 
 Je connais pas vraiment "sed" je vais me documenter un peu sur la chose, mais à ce que tu me dit, 
	
	sed -rn 'N;s/([^;]*;)(.*)\n(\1)(.*)/\1\2;\4/p' brol
  ne s'applique qu'au fichier qui contient 4 lignes?
Pour faire simple, je travaille en horaire décaler, mon profil et celui de mes collègues (total 3 personnes) est unique dans la société, la badgeuse ne peut connaitre notre planning car il est different chaque semaine, on est donc obliger de calculer nos horaire nous meme. On est parvenu à extraire du logiciel de badge un fichier csv qui contient la date et l'heure du pointage.
Pour un journée, on a donc 2 lignes (debut et fin) si je traite mes pointages correctement tous les mois, le fichier contiendra environ 60 lignes par mois, mais si j'oublie de le faire, comme ces derniers temps, il peut contenir jusqu'à 360 lignes... et oui 5mois de retard ca fait beaucoup...
						
					
Partager