#1 Le 28/09/2015, à 13:04
- titifier
ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
Bonjour,
je suis à la recherche d'une commande de type SED pour ajouter un nouveau clavier dans le fichier evdev.xml et cela depuis un batch.
Pour les besoins des tests le fichier est dans /home/olivier/Bureau/evdev.xml donc mon bureau.
avec la commande
" sed -i -e 's/<modelList>/<modelList>\ code cavier HTML /' /home/olivier/Bureau/evdev.xml "
ouvre bien le ficher evdev.xml
et copie après la balise <modelList> code clavier HTML.
toutefois cela "plante quand je veux ajouter quelque chose comme
<model>
<configItem>
<name>Minimax-He</name>
<description>AKOR Minimax-He</description>
<languageList><iso639Id>Minimax-He</iso639Id></languageList>
<vendor>AKOR</vendor>
</configItem>
</model>
A la place de "code clavier HTML".
Ainsi on pourra ajouter automatiquement un clavier depuis paramètre système \ saisie de texte \ ajout de clavier.
Naturellement si vous avez une autre solution je suis preneur.
Merci par avance.
Modération : merci à l'avenir d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 30/09/2015, à 18:43)
Hors ligne
#2 Le 28/09/2015, à 19:54
- pingouinux
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
Bonsoir,
Tu peux essayer ceci (cette commande ne modifie pas le fichier d'origine) :
chaine="<modelList>"
ajout="<model>
<configItem>
<name>Minimax-He</name>
<description>AKOR Minimax-He</description>
<languageList><iso639Id>Minimax-He</iso639Id></languageList>
<vendor>AKOR</vendor>
</configItem>
</model>"
awk -v chaine="$chaine" -v ajout="$ajout" '{gsub(chaine,chaine""ajout);print}' /home/olivier/Bureau/evdev.xml
Hors ligne
#3 Le 30/09/2015, à 14:24
- titifier
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
Bonjour et merci pour la réponse très rapide.
J’ai testé cela fonctionne, mais cela ne modifier pas le ficher.
le bloc doit être ajouté juste avant la ligne </layoutList>
Avec mon code sed -i -e 's/<modelList>/<modelList>\ code clavier HTML /' /home/olivier/Bureau/evdev.xml cela se positionne bien après </layoutList> dans evdev.xml sauf que je n'arrive pas a coper le code du clavier.
Un peu comme ça.
sed -i -e 's/<modelList>/<modelList>\
<model>
<configItem>
<name>Minimax-He</name>
<description>AKOR Minimax-He</description>
<languageList><iso639Id>Minimax-He</iso639Id></languageList>
<vendor>AKOR</vendor>
</configItem>
</model>
/' /home/olivier/Bureau/evdev.xml
Pas facile on sèche depuis une semaine.
encore merci
Modération : merci à l'avenir d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 30/09/2015, à 18:44)
Hors ligne
#4 Le 30/09/2015, à 14:41
- pingouinux
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
..., mais cela ne modifier pas le ficher.
Normal, il faut d'abord savoir si la modif convient.
le bloc doit être ajouté juste avant la ligne </layoutList>
.......................................
cela se positionne bien après </layoutList>
Il faudrait savoir…
Le mieux est que tu montres quelques lignes de ton fichier comprenant <modelList> et </layoutList>, et le résultat que tu veux obtenir.
Hors ligne
#5 Le 30/09/2015, à 15:09
- titifier
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
rebonjour,
voici le début du fichier evdev.xml.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
<xkbConfigRegistry version="1.1">
<modelList>
============================================== mettre le code la
<model>
<configItem>
<name>pc101</name>
<description>Generic 101-key PC</description>
<vendor>Generic</vendor>
</configItem>
</model>
<model>
<configItem>
============ code a installé =========
<model>
<configItem>
<name>Minimax-He</name>
<description>AKOR Minimax-He</description>
<languageList><iso639Id>Minimax-He</iso639Id></languageList>
<vendor>AKOR</vendor>
</configItem>
</model>
============= code qui marche enfin chez lui pour avoir une idee ==============
sudo sed -i 's_<\/layoutList>_<layout>\
<configItem>\
<name>yi</name>\
\
<shortDescription>yi</shortDescription>\
<description>Yiddish (qwerty)</description>\
<languageList>\
<iso639Id>yid</iso639Id>\
</languageList>\
</configItem>\
<variantList>\
<variant>\
<configItem>\
<name>israeli</name>\
<shortDescription>yi</shortDescription>\
<description>Yiddish (Israeli)</description>\
</configItem>\
</variant>\
<variant>\
<configItem>\
<name>israeli-phonetic</name>\
<shortDescription>yi</shortDescription>\
<description>Yiddish (Israeli phonetic)</description>\
</configItem>\
</variant>\
</variantList>\
</layout>\
</layoutList>_g' /usr/share/X11/xkb/rules/evdev.xml &&
Modération : merci à l'avenir d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 30/09/2015, à 18:45)
Hors ligne
#6 Le 30/09/2015, à 15:39
- pingouinux
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
La commande en #2 devrait marcher ainsi (j'ai ajouté un \n après la chaîne recherchée)
chaine="<modelList>"
ajout="<model>
<configItem>
<name>Minimax-He</name>
<description>AKOR Minimax-He</description>
<languageList><iso639Id>Minimax-He</iso639Id></languageList>
<vendor>AKOR</vendor>
</configItem>
</model>"
awk -v chaine="$chaine" -v ajout="$ajout" '{gsub(chaine,chaine"\n"ajout);print}' /home/olivier/Bureau/evdev.xml >fichier_temporaire
et si fichier_temporaire est correct
mv fichier_temporaire /home/olivier/Bureau/evdev.xml
Je te conseiile de faire auparavant une sauvegarde de ton fichier d'origine (au cas où…), à supprimer ensuite si tout s'est bien passé.
Hors ligne
#7 Le 30/09/2015, à 15:45
- titifier
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
je teste ça ce soir merci
Hors ligne
#8 Le 30/09/2015, à 15:57
- pingouinux
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
Avec sed
sed 's_<modelList>_&\
<model>\
<configItem>\
<name>Minimax-He</name>\
<description>AKOR Minimax-He</description>\
<languageList><iso639Id>Minimax-He</iso639Id></languageList>\
<vendor>AKOR</vendor>\
</configItem>\
</model>_' /home/olivier/Bureau/evdev.xml
et si c'est bon
sed -i .................
Hors ligne
#9 Le 02/10/2015, à 09:04
- titifier
Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch
Bonjour,
franchement merci cela marche avec sed -i.
Je te dois une petite explication.
Je suis actuellement très content de mon clavier minimax. (je n'ai rien a voir avec la société, même pas de très loin).
Je suis en train d’adapter pour la communauté Ubuntu.
De manière a avoir le français / hébreu / hébreu bilibilique / et après les autres langues comme Russes et arabes.
Donc encore grands merci pour ton aide.
Hors ligne