Extraire champs d'un fichier txt
Fermé
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
-
30 janv. 2015 à 21:26
qbert Messages postés 9 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 2 février 2015 - 2 févr. 2015 à 13:15
qbert Messages postés 9 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 2 février 2015 - 2 févr. 2015 à 13:15
A voir également:
- Extraire champs d'un fichier txt
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Extraire une video youtube - Guide
- Ouvrir un fichier .bin - Guide
9 réponses
Utilisateur anonyme
30 janv. 2015 à 23:28
30 janv. 2015 à 23:28
salut,
voici une ligne en awk
voici une ligne en awk
awk -F'[=,]' 'BEGIN{RS="\\$end"}($2){print gensub("(^\n|\n$)","","g",$3)>$2} tonFichier
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
31 janv. 2015 à 11:01
31 janv. 2015 à 11:01
Bonjour et merci pour cette réponse.
Alors cela ne fonctionne pas, j'ai une erreur
./test.awk: line 2: $'\r': command not found
./test.awk: line 3: $'history\r': command not found
./test.awk: line 4: $'\r': command not found
history est le nom de fichier.
Bon cela dit je ne connaissais pas la commande Awk, et ses possibilités sont tout a fait adaptées a ce que je veux faire.
Un grand merci déjà pour votre aide et de m'avoir mis sur cette voie, voilà qui je pense va m'aider a résoudre cette situation.
Je vais creuser dans cette direction.
Merci une fois de plus.....
Alors cela ne fonctionne pas, j'ai une erreur
./test.awk: line 2: $'\r': command not found
./test.awk: line 3: $'history\r': command not found
./test.awk: line 4: $'\r': command not found
history est le nom de fichier.
Bon cela dit je ne connaissais pas la commande Awk, et ses possibilités sont tout a fait adaptées a ce que je veux faire.
Un grand merci déjà pour votre aide et de m'avoir mis sur cette voie, voilà qui je pense va m'aider a résoudre cette situation.
Je vais creuser dans cette direction.
Merci une fois de plus.....
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
31 janv. 2015 à 11:31
31 janv. 2015 à 11:31
hello
le fichier test.awk a été créé sur Windows ?
il contient des ^M en fin de lignes ?
le fichier test.awk a été créé sur Windows ?
il contient des ^M en fin de lignes ?
cat -A test.awk
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
31 janv. 2015 à 21:39
31 janv. 2015 à 21:39
En effet recréer sous Raspberry, et il n'y a plus de ^M a la fin
Testé avec cat -A test.awk
cela dit:
./test.awk: line 1: syntax error near unexpected token `('
./test.awk: line 1: `awk -F[=,]' 'BEGIN{RS="\\$end"}($2){print gensub("(^\n|\n$)","","g",$3)>$2}'
bon je cherche.......
Testé avec cat -A test.awk
cela dit:
./test.awk: line 1: syntax error near unexpected token `('
./test.awk: line 1: `awk -F[=,]' 'BEGIN{RS="\\$end"}($2){print gensub("(^\n|\n$)","","g",$3)>$2}'
bon je cherche.......
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
31 janv. 2015 à 22:19
31 janv. 2015 à 22:19
Merci
En effet corrigé mais
./test.awk: line 1: unexpected EOF while looking for matching `''
./test.awk: line 3: syntax error: unexpected end of file
En effet corrigé mais
./test.awk: line 1: unexpected EOF while looking for matching `''
./test.awk: line 3: syntax error: unexpected end of file
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
31 janv. 2015 à 22:37
31 janv. 2015 à 22:37
Et bien justement j'arrive pas a comprendre d'où il sort, quand on regarde le quatrième message de ce post on le voit au début du script, et je ne sais pas pourquoi, car il n'a jamais était écrit.
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
1 févr. 2015 à 00:15
1 févr. 2015 à 00:15
bon j'ai trouvé d'où venait ce problème; il fallait poser un ' en fin de code.
awk -F'[=,]' 'BEGIN{RS="\\$end"}($2){print gensub("(^\n|\n$)","","g",$3)>$2}'
par contre:
awk: line 2: function gensub never defined
/home/pi/test/history.txt: line 1: $'\r': command not found
/home/pi/test/history.txt: line 2: $'\r': command not found
/home/pi/test/history.txt: line 3: $'\r': command not found
/home/pi/test/history.txt: line 4: $'=juju,\r': command not found
/home/pi/test/history.txt: line 5: $'\r': command not found
/home/pi/test/history.txt: line 6: $'blablabla\r': command not found
/home/pi/test/history.txt: line 7: $'blabla\r': command not found
/home/pi/test/history.txt: line 8: $'\r': command not found
/home/pi/test/history.txt: line 9: $'\r': command not found
/home/pi/test/history.txt: line 10: $'\r': command not found
/home/pi/test/history.txt: line 11: $'\r': command not found
/home/pi/test/history.txt: line 12: $'=popo,\r': command not found
/home/pi/test/history.txt: line 13: $'\r': command not found
/home/pi/test/history.txt: line 14: $'bliblibli\r': command not found
/home/pi/test/history.txt: line 15: $'blilbli\r': command not found
/home/pi/test/history.txt: line 16: $'\r': command not found
j'ai fait un sudo dos2unix
mais pareil................
awk -F'[=,]' 'BEGIN{RS="\\$end"}($2){print gensub("(^\n|\n$)","","g",$3)>$2}'
par contre:
awk: line 2: function gensub never defined
/home/pi/test/history.txt: line 1: $'\r': command not found
/home/pi/test/history.txt: line 2: $'\r': command not found
/home/pi/test/history.txt: line 3: $'\r': command not found
/home/pi/test/history.txt: line 4: $'=juju,\r': command not found
/home/pi/test/history.txt: line 5: $'\r': command not found
/home/pi/test/history.txt: line 6: $'blablabla\r': command not found
/home/pi/test/history.txt: line 7: $'blabla\r': command not found
/home/pi/test/history.txt: line 8: $'\r': command not found
/home/pi/test/history.txt: line 9: $'\r': command not found
/home/pi/test/history.txt: line 10: $'\r': command not found
/home/pi/test/history.txt: line 11: $'\r': command not found
/home/pi/test/history.txt: line 12: $'=popo,\r': command not found
/home/pi/test/history.txt: line 13: $'\r': command not found
/home/pi/test/history.txt: line 14: $'bliblibli\r': command not found
/home/pi/test/history.txt: line 15: $'blilbli\r': command not found
/home/pi/test/history.txt: line 16: $'\r': command not found
j'ai fait un sudo dos2unix
mais pareil................
les
pour
ce serait bien de nous montrer ton script en entier.
\rmontrent que ton fichier est encore au format DOS.
pour
gensub, j'avais trouvé que c'était plus élégant, mais si ta version de
awkne reconnaît pas cette fonction...
awk -F'[=,]' 'BEGIN{RS="\\$end"}($2){gsub("(^\n|\n$)","",$3); print $3>$2}'
ce serait bien de nous montrer ton script en entier.
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
1 févr. 2015 à 11:39
1 févr. 2015 à 11:39
Tout d'abord merci de porter autant d'intérêt a ma situation.
Alors juste pour information je travaille a distance sur mon raspberry avec vnc, avec une machine sous seven, et je pense que c'est peut être a cause de ça que le script est reconnu comme étant DOS...??....
j'ai beau lui avoir fait un sudo dos2unix , cela ne change rien...
Comme je l'ai dit dans mon premier post je suis totalement débutant dans ce domaine et je commence a me documenter depuis peu.
Donc pour plus de confort je vais installer un système unix sur une autre machine.
Pour gensub en effet j'avais déjà vu sur d'autre tuto que la fonction était généralement nommée gsub.
que me conseillez vous comme système UNIX ??
Concernant le script et bien tous ce que vous m'avais fournis est là, j'ai juste besoin d'un batch pour créer ces fameux fichier, qui seront fournis avec la version finale du Front-end.
http://www.tuxme.net/
Voilà et encore merci.
Alors juste pour information je travaille a distance sur mon raspberry avec vnc, avec une machine sous seven, et je pense que c'est peut être a cause de ça que le script est reconnu comme étant DOS...??....
j'ai beau lui avoir fait un sudo dos2unix , cela ne change rien...
Comme je l'ai dit dans mon premier post je suis totalement débutant dans ce domaine et je commence a me documenter depuis peu.
Donc pour plus de confort je vais installer un système unix sur une autre machine.
Pour gensub en effet j'avais déjà vu sur d'autre tuto que la fonction était généralement nommée gsub.
que me conseillez vous comme système UNIX ??
Concernant le script et bien tous ce que vous m'avais fournis est là, j'ai juste besoin d'un batch pour créer ces fameux fichier, qui seront fournis avec la version finale du Front-end.
http://www.tuxme.net/
Voilà et encore merci.
il n'y a pas que le script à passer à
pour la distribution, je te recommande Mageia.
dos2unix, il faut y passer le fichier à traiter.
gsubet
gensubsont deux fonctions différentes, cette dernière n'étant pas implémentée dans
mawk, qui retourne ce même message «[...]never defined» :(
pour la distribution, je te recommande Mageia.
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
1 févr. 2015 à 21:44
1 févr. 2015 à 21:44
mageia a l'air bien sympa, je vais test cela dans la semaine.
Pour en revenir a nos moutons, en effet le fichier txt avait besoin d'un dos2unix, et la commande gensub doit être remplacé par gsub, je récupère bien les éléments voulus dans le terminal, mais il me semble que gsub ne connait pas "g"
awk: line 1: syntax error at or near g
/home/pi/test/history.txt: line 4: =juju,: command not found
/home/pi/test/history.txt: line 6: blablabla: command not found
/home/pi/test/history.txt: line 7: blabla: command not found
/home/pi/test/history.txt: line 12: =popo,: command not found
/home/pi/test/history.txt: line 14: bliblibli: command not found
/home/pi/test/history.txt: line 15: blilbli: command not found
Pour en revenir a nos moutons, en effet le fichier txt avait besoin d'un dos2unix, et la commande gensub doit être remplacé par gsub, je récupère bien les éléments voulus dans le terminal, mais il me semble que gsub ne connait pas "g"
awk: line 1: syntax error at or near g
/home/pi/test/history.txt: line 4: =juju,: command not found
/home/pi/test/history.txt: line 6: blablabla: command not found
/home/pi/test/history.txt: line 7: blabla: command not found
/home/pi/test/history.txt: line 12: =popo,: command not found
/home/pi/test/history.txt: line 14: bliblibli: command not found
/home/pi/test/history.txt: line 15: blilbli: command not found
effectivement, ce ne sont pas les mêmes fonctions, et le g n'apparaît plus dans la ligne donnée au #10.
qbert
Messages postés
9
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
2 février 2015
2 févr. 2015 à 13:15
2 févr. 2015 à 13:15
Ha oui en effet je n'avais pas remarqué qu'il y avait plus que la fonction qui avait changé.
par contre cela ne renvoie rien, ni message d'erreur, ni texte dans la terminal.
Bon je pense que l'on va arrêter là, je ne veut pas prendre sur votre temps indéfiniment, surtout que je me suis aperçu que le vrais fichier a traiter n'avait pas la même structure répétitive que l'exemple que j'avais proposé dans mon premier post, les espaces ne sont pas disposés de la même manière...
Je vais plutôt me documenter et travailler dans ce sens là par moi même, cela me permettra, de mieux cerner les possibilités avec awk et d'en comprendre les schémas.
Je tiens une nouvelle fois a vous remercier pour cette aide fort constructive et le temps que vous m'avez accorder.
par contre cela ne renvoie rien, ni message d'erreur, ni texte dans la terminal.
Bon je pense que l'on va arrêter là, je ne veut pas prendre sur votre temps indéfiniment, surtout que je me suis aperçu que le vrais fichier a traiter n'avait pas la même structure répétitive que l'exemple que j'avais proposé dans mon premier post, les espaces ne sont pas disposés de la même manière...
Je vais plutôt me documenter et travailler dans ce sens là par moi même, cela me permettra, de mieux cerner les possibilités avec awk et d'en comprendre les schémas.
Je tiens une nouvelle fois a vous remercier pour cette aide fort constructive et le temps que vous m'avez accorder.