|
|
|
|
Bonjour,
Je cherche à faire un script qui parse un fichier ligne par ligne et qui, à partir d'une certaine position dans la ligne, extrait le contenu de la ligne pour le mettre dans un autre fichier.
Par exemple, j'ai un fichier qui contient les lignes suivantes:
bla yopyo ahah
pofpofpof pifpif
Je veux qu'à partir de la position (colonne ?) 12, le reste de la ligne soit extraite dans un autre fichier, c'est à dire à partir du a de "ahah" et du p de "pifpif" (les espaces devant compter comme une position).
J'ai réussi à parser le fichier et à extraire son contenu dans un autre, mais je ne sais pas comment gérer cette histoire de position.
J'ai vu des fonctions du genre substr, index, unpack...mais rien qui puisse faire l'affaire.
Une idée ?
Merci d'avance,
Trepliev
Configuration: Linux Firefox 2.0.0.11
Salut et merci pour ta réponse,
|
-n : demande de ne pas afficher le résultat sur la sortie standard (l'écran)
|
Ello,
#! /usr/bin/perl
while ($string = <>) { # lecture ligne par ligne du fichier passé en paramètre
$extract = substr( $string, 4, 15 ); # extraie le texte à partir du caractère 5 sur les 15 prochains caractères
print "$extract\n";
}
En bash, on peut utiliser la commande colrm Par exemple: colrm 5 15 < test > resultva supprimer les caractères de 5 à 15 inclus de test et afficher le reste dans result En espérant que ça puisse aider ;) Trepliev |
Merci ;-))
$ cat plop
bla yopyo ahah
pofpofpof pifpif
$ while read line; do echo ${line:10}; done < plop
ahah
pifpifet si tu ne veux 3 caractères à partir du 10ème, il suffit de rajouter :$ while read line; do echo ${line:10:3}; done < plop
aha
pif;-))
Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |