Ok les petits 0 sont partis !!
en fait ca n'a pas ajouté des 0 sinon que ca a copier le dernier caractere du 90000....c'es bien ça?
Aller Bonne soirée !!!
Et merci encore
Version imprimable
Ok les petits 0 sont partis !!
en fait ca n'a pas ajouté des 0 sinon que ca a copier le dernier caractere du 90000....c'es bien ça?
Aller Bonne soirée !!!
Et merci encore
Re salut.
J'ai detecter un cas que j'avais pas encore vu avant..
Il existe des ligne 650 avec 2 valeurs separées par des ; et comme tu peux voir, la segonde valeur ne se change pas avec le sed.. Y'a un moyen de dire a sed que y'a des lignes avec une valeur et d'autres avec 2 valeurs??Code:000000008 650 L $$aGeneral y miscelánea0;4001
Hello,
Quel comportement est attendu dans le cas ou il y'a 2 valeurs?
Dans le cas ou l'un des chiffres doit valider le nombre recherché et que les 2 nombres soient remplacés:
testé avecCode:sed '/[0-9]\{9\} 650 L $$a\(56[0-9]\{,\}\|[0-9]\{,\};56[0-9]\{,\}\)/{G;s/^\(.* $$a\)[0-9]\{,\}\(\|;[0-9]\{,\}\)\(.*\)\(\n\)$/\1Ciencias biomédicas, Estudios aplicados\3\4\1GodSaveTheQueen\3/g}' test.txt
Code:
1
2
3
4
5
6 000000008 650 L $$a4001;56000 $$byo 000000008 650 L $$a56000;4001 $$bou 000000008 650 L $$a4001 000000008 650 L $$a56000 000000008 650 L $$a56000;4001 000000008 650 L $$a4001;56000
Salut
si y'a 2 valeurs, je devrais remplacer les codes par sa correspondance, exemple:
dans ce cas
On devrait avoir ceci:Code:
1
2
3 000000008 650 L $$aGeneral y miscelánea0;4001 000000008 650 L $$aGeneral and miscellaneus0;4001
000000008 650 L $$aGeneral y miscelánea0;Quimica
000000008 650 L $$aGeneral and miscellaneus0;CHemistery
avec ceci ça devrait le faire (fait avec 4001 et les même données de test). J'ai fait une petite correction de bord au passage
Code:sed '/[0-9]\{9\} 650 L $$a\(40[0-9]\{0,2\}\( \|;\|$\)\|[0-9]\{,\};40[0-9]\{0,2\}\( \|$\)\)/{G;s/^\(.* $$a.*\)40[0-9]\{0,2\}\(.*\)\(\n\)$/\1Quimica\2\3\1Chemistry\2/g}' test.txt
Salut
je pige pas ta derniere commande... (enfin comme les autres aussi jajajaja)
mais j'ai testé et ca fait rien...
Par exemple si je test dans un fichier avec ceci:
ca reste tel que...Code:
1
2 000000008 650 L $$aGeneral y miscelánea0;4001 000000008 650 L $$aGeneral and miscellaneus0;4001
Je fais ceci:
Code:#sed -i '/[0-9]\{9\} 650 L $$a\(40[0-9]\{0,2\}\( \|;\|$\)\|[0-9]\{,\};40[0-9]\{0,2\}\( \|$\)\)/{G;s/^\(.* $$a.*\)40[0-9]\{0,2\}\(.*\)\(\n\)$/\1Quimica\2\3\1Chemistry\2/g}' luis.dat
Hmm ici on commence à atteindre les limites du possible pour sed, vu que dans ton cas tu cherches à effectuer un changement sur une ligne qui a déja été dupliquée
Avec ton exemple, le script que l'on a effectué jusqu'à maintenant modifié pour l'occasion donnerait
car pour chaque ligne qu'il rencontre il va en créer deuxCitation:
000000008 650 L $$aGeneral y miscelánea0;Quimica
000000008 650 L $$aGeneral y miscelánea0;Chemistry
000000008 650 L $$aGeneral and miscellaneus0;Quimica
000000008 650 L $$aGeneral and miscellaneus0;Chemistry
a oui c'est vrai
donc ca colle pas...
Bon je vais me debrouiller avec l'excel d'origine pour separer les valeurs..Ca devrait le faire.
Merci encore pour toute ton aide..
Ciao
Hello
ok j'ai resolu l'histoire avec l'excel et ensuite grace a tes commandes je suis arrivé a un beau resultat.
J'ai pourtant un autre doute.
Comment je peux effacer ces lignes:
Comme tu vois la ligne est presque la meme mais y'a quelques differences, donc j'ai tenté avec ceci:Code:
1
2
3
4 000000001 008 L 100211s9999\\\\xx\\\\\\t\\\\\000\0\spa\d 000000002 008 L 100211s9999\\\\xx\\\\\\p\\\\\000\0\eng\d 000000003 008 L 100211s9999\\\\xx\\\\\\m\\\\\000\0\fre\d 000000004 008 L 100211s9999\\\\xx\\\\\\t\\\\\000\0\dut\d
sed -i '/[0-9]\{9\} 008 L .*/d' fichier.dat
mais ça marche pas...t'as une idée?
Hello,
A première vue (je ne suis malheureusement pas sous linux pour tester actuellement :?) je dirais qu'il manque des espaces dans le pattern de recherche
Sinon un bon moyen de tester les regex avec sed est d'utiliser l'option -n couplé avec la commande "p". Cela permet de voir quels champs sont sélectionnés par ton patron de recherche.Code:sed -i '/[0-9]\{9\} 008 L .*/d' fichier.dat
exemple:
imprimera uniquement les lignes satisfaisant searched-patternCode:sed -n '/searched-pattern/p' fichier.dat
Salut
grace a ton truc pour imprimer, j'ai reussit a isoler le code qui imprime ce que je veux degager:
MerciCode:sed -i '/[0-9]\{9\} 008/d' file.dat
Salut a tous
Exodev tu te souviens de ces commandes?
Tu m'avais passé pour changer un code en texte dans des champs...dans un fichiers avec des registres.Code:sed -i '/[0-9]\{9\} 650 L $$a44[0-9]\{4\}/{G;s/^\(.* $$a\)[0-9]\{5\}\(.*\)\(\n\)$/\1Instrumentación\2\3\1Instrumentation\2/g}'
Alors j'ai remarqué un probleme. Lorsque je cré le fichier avec openoffice, au debut c'est un excel et je le transforme en CSV...avec ISO 8859 15 / EURO
Ce qui me donne ceci dans le fichier:
Tu vois les accents sont sauvegardé, et lorsque je charge ce fichier dans oracle les accents se voient parfait.Code:MADRID (ESPAÑA)
Par contre, lorsque j'applique les connandes SED, certaines font que les accents deviennent ceci:
Et la c'est la cata car les accents se voient fatal sur le web.Code:MADRID (ESPAÃ<91>A)
J'ai remarqué que ça le fait pas avec toutes les commandes SED, par exemple celle ne provoque pas de changement:
Code:sed -i '/[0-9]\{9\} 650 L $$a01[0-9]\{4\}/{G;s/^\(.* $$a\)[0-9]\{5\}\(.*\)\(\n\)$/\1Carbón, lignito y turba\2\3\1Coal, lignite and peat\2/g}'
et celle ci oui:
T'as une idée de l'origine?Code:sed -i '/[0-9]\{9\} 650 L $$a22[0-9]\{4\}/{G;s/^\(.* $$a\)[0-9]\{5\}\(.*\)\(\n\)$/\1Tecnología de reactores\2\3\1Nuclear reactor technology\2/g}'
D'avance merci
Salut a tous
j'ai remarqué que si j'enleve les accents des strings que je rajoute, ca ne le fais plus...
exemple si je remplace ca:
pas ca:Code:Instrumentación
Ca ne touche plus aux autres accents...Code:Instrumentacion
Comment je pourrais remplacer les accents alors? par l'equivalent ascii?
Comment je peux faire ça?
Salut,
La commande tr est la pour cela.
Bien sûr il convient de lire le man.
ok resolu avec ceci:
iconv --from-code=UTF-8 --to-code=ISO-8859-15 ./revistas1.mrk_aleph_sec.dat -o luis.mrk_aleph_sec.dat
Merci a tous