Manip de chaines de caractères sous LINUX
Claude-Lacroix
Messages postés
1
Statut
Membre
-
Claude Lacroix -
Claude Lacroix -
Bonjour,
Je dois fabriquer un fichier 2 à partir d'un fichier 1.
Le fichier 2 contiendra plus d'infos que dans le fichier 1.
Les infos du fichier 2 seront 'calculées' à partir du fichier 1
en clair :
contenu du fichier 1 qui est une sorte de .CSV :
toto;tata;10.20.30.40;titi;tutu
roro;rara;10.21.31.41;riri;ruru
Le fichier 2 devrait contenir ceci :
toto;tata;10.20.30.38;10.20.30.39;10.20.30.40,titi;tutu
roro;rara;10.21.31.39,10.21.31.40,10.21.31.41;riri;ruru
On voit que le champ 3 (adresses IP ) du fichier 1 a servi à générer un nouveau champ 3 et champ 4 dans le fichier 2.
Ces adresses IP sont les mêmes mais avec le dernier octet en -1 et -2.
Ces 2 nouveaux champs ont été insérés dans les données existantes.
Y a-t-il une solution à ce problème ?????
Merci
Je dois fabriquer un fichier 2 à partir d'un fichier 1.
Le fichier 2 contiendra plus d'infos que dans le fichier 1.
Les infos du fichier 2 seront 'calculées' à partir du fichier 1
en clair :
contenu du fichier 1 qui est une sorte de .CSV :
toto;tata;10.20.30.40;titi;tutu
roro;rara;10.21.31.41;riri;ruru
Le fichier 2 devrait contenir ceci :
toto;tata;10.20.30.38;10.20.30.39;10.20.30.40,titi;tutu
roro;rara;10.21.31.39,10.21.31.40,10.21.31.41;riri;ruru
On voit que le champ 3 (adresses IP ) du fichier 1 a servi à générer un nouveau champ 3 et champ 4 dans le fichier 2.
Ces adresses IP sont les mêmes mais avec le dernier octet en -1 et -2.
Ces 2 nouveaux champs ont été insérés dans les données existantes.
Y a-t-il une solution à ce problème ?????
Merci
A voir également:
- Manip de chaines de caractères sous LINUX
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux - Guide
- Ascii nombre de caractères - Guide
- Exemple de mot de passe à 8 caractères - Guide
- Linux reader - Télécharger - Stockage
2 réponses
hello
$ cat a1
toto;tata;10.20.30.40;titi;tutu
roro;rara;10.21.31.41;riri;ruru
$ awk -F "[\.;]" '{n=$3 "." $4 "." $5 "." ; print $1 ";" $2 ";" n $6-2 ";" n $6-1 ";" n $6 ";" $7 ";" $8}' < a1
toto;tata;10.20.30.38;10.20.30.39;10.20.30.40;titi;tutu
roro;rara;10.21.31.39;10.21.31.40;10.21.31.41;riri;ruru