#0 Re : -1 » [AIDE] Récupération et extraction de donnée d'une page HTML via cURL » Le 21/12/2010, à 17:23
- sensini
- Réponses : 4
Salut,
alors effectivement, grep sed awk cut, ça parait un peu compliqué (et ça peut l'être) mais c'est très puissant.
Je t'invite à lire des tutoriels dessus (en plus des pages man :þ), tu apprendras plein de choses.
Par exemple pour sed et awk : http://www.grymoire.com/Unix/Sed.html http://www.grymoire.com/Unix/Awk.html
En très gros, les usages basiques que j'ai de ces commandes (j'utilise cat bien que ce ne soit pas nécessaire…) :
cat fichier | grep motif: affiche les lignes avec l'expression régulière motif à l'intérieur
cat fichier | sed 's/ancien/nouveau/g': remplace le mot ancien par nouveau dans tout le fichier (et la sortie se fait sur stdout)
cat fichier | cut -d',' -f3: découpe le fichier en colonne suivant le délimiteur «:» et affiche la troisième colonne
cat fichier | awk '{a[$1]+=$2;b[$1]++}END{for (index in a){print index,a[index]/b[index]}}'affiche pour chaque valeur de première colonne, la valeur moyenne de la 2m colonne
Bon, passé cet introduction attaquons nous à ton problème. Il y a plusieurs façon de faire, je t'en présente une seule.
D'abord, récupérer la portion de texte qui t'intéresse. pour cela sed ou awk peuvent faire l'affaire
cat archtwitter.html | sed -n '/latest-status/,/<li/ p'donne
<li class="hentry u-archlinux status latest-status" id="status_27769461880"
>
<span class="status-body">
<span class="status-content">
<span class="entry-content">Python is now Python 3: Allan McRae wrote:
A major Python update has just been moved from the testing
repositories... <a href="http://bit.ly/bNhu4S" class="tweet-url web" rel="nofollow" target="_blank">http://bit.ly/bNhu4S</a></span>
</span>
<span class="meta entry-meta" data='{}'>
<a class="entry-date" rel="bookmark" href="http://twitter.com/archlinux/status/27769461880">
<span class="published timestamp" data="{time:'Mon Oct 18 21:08:39 +0000 2010'}">2:08 PM Oct 18th</span></a>
<span>via <a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a></span>
</span>
<ul class="meta-data clearfix">
</ul>
</span>
</li>par défaut, sed affiche chaque ligne, l'option -n lui dit que non. le p de la fin quant à lui permet d'afficher les lignes correspondantes à la commande précédente
/latest-status/,/<li/ dit d'afficher (p) les lignes entre le motif latest-status et <li
sed -n '/latest-status/,/<li/ p' : affiche les lignes entre latest-status et <li, supprime le reste
Ensuite, tu veux récupérer l'url à l'intérieur du tweet
pour ça tu vois que les balises de lien des tweets ont une classe: class="tweet-url web"
donc tu utilises grep "tweet-url web" sur ton résultat:
cat archtwitter.html | sed -n '/latest-status/,/<li/ p' | grep 'tweet-url web'donne
repositories... <a href="http://bit.ly/bNhu4S" class="tweet-url web" rel="nofollow" target="_blank">http://bit.ly/bNhu4S</a></span>Pour récupérer l'url, là encore plusieurs façons. Je te propose d'utiliser awk:
awk '{for(i=1;i<=NF;i++){print $i}}' : pour chaque mot de la ligne (NF = Nb Fields =Nb de champs) affiche le ième mot ($i, $0 correspond à toute la ligne, $1 au premier mot etc)
cat archtwitter.html | sed -n '/latest-status/,/<li/ p' | grep 'tweet-url web' | awk '{for(i=1;i<=NF;i++){print $i}}'repositories...
<a
href="http://bit.ly/bNhu4S"
class="tweet-url
web"
rel="nofollow"
target="_blank">http://bit.ly/bNhu4S</a></span>ensuite tu veux récupérer la ligne avec href, donc, grep href
cat archtwitter.html | sed -n '/latest-status/,/<li/ p' | grep 'tweet-url web' | awk '{for(i=1;i<=NF;i++){print $i}}' | grep "href"href="http://bit.ly/bNhu4S"comme tu veux seulement le lien, tu vas découper la ligne suivant les «"» et prendre la 2m colonne:
cat archtwitter.html | sed -n '/latest-status/,/<li/ p' | grep 'tweet-url web' | awk '{for(i=1;i<=NF;i++){print $i}}' | grep "href" | cut -d'"' -f2http://bit.ly/bNhu4SEncore une fois, tu peux arriver au même résultat avec une tout autre ligne de commande:
awk '/<li/{deb=0} /latest-status/{deb=1;print} {if(deb){print}}' archtwitter.html | sed -n '/tweet-url web/ s/.*href="\([^"]*\)".*/\1/g p'fait quasiment la même chose ![]()
Du coup, pas de mystère, pour maitriser ces fonctions (ou du moins les bases de ces fonctions) il faut les tester, et pour ça rien de mieux que de reproduire les tutoriels
(cherche aussi avec les mots clefs «premiers pas» ou «initiation»)
http://abs.traduc.org/abs-5.0-fr/apc.html les commandes basiques de sed et awk
http://docstore.mik.ua/orelly/unix/sedawk/index.htm plus complet mais en anglais
#1 Re : -1 » IceWM ?? » Le 22/12/2010, à 10:46
- sensini
- Réponses : 5
Salut,
j'ai utilisé icewm fut un temps, mais maintenant, je tourne sous awesome.
Ce que j'avais apprécié sur icewm c'est les fichiers de config et le manuel http://www.icewm.org/FAQ/IceWM-FAQ.html
Tu peux enlever la barre des tâches en éditant le fichier preferences en ajoutant « ShowTaskBar=0 » ![]()
(http://www.icewm.org/manual/icewm-10.html#ss10.2)
icewm n'est pas très gros, donc tu peux installer/désinstaller sans souci pour t'amuser avec
Bonne journée
#2 Re : -1 » Cherche cde pour passer la souris de droitier à gaucher+modif couleur » Le 22/12/2010, à 10:50
- sensini
- Réponses : 3
Salut,
en utilisant xmod map:
xmodmap -e 'pointer = 3 2 1 4 5'
Si 3 boutons sans roulette:
xmodmap -e 'pointer = 3 2 1'
Si 2 boutons:
xmodmap -e 'pointer = 2 1'
Pour remettre en droitier, remet dans l'ordre croissant.
#3 Re : -1 » [Emacs] Correcteur orthographique et latex » Le 07/12/2010, à 17:07
- sensini
- Réponses : 2
Concernant ispell, tu peux soit:
aller dans le menu Tools → Spell checking → Spell check buffer
utiliser le raccourci M-x ispell-buffer
M-x ispell-[touche tab ×2] affichera la liste des complétions possibles
(C-h a ispell pour les explications de quoi fait quoi)
Par défaut, ce n'est pas en français chez moi:
M-x ispell-change-dictionary [entrée] francais
une fois lancé tu as des propositions qui s'affiche pour les mots non othographiés correctement
par exemple pour bonjoir:
(0) bonjour (1) bonsoir
et tu tapes 0 pour corriger en bonjour et pour bonsoir, il faut taper 1
pour laisser inchangé espace
i pour insérer dans ton dico perso
h pour avoir de l'aide
q pour quitter ispell
Pour flyspell, un M-x flyspell-mode et le tour est joué.
Pour faire du LaTex avec emacs, il te faut installer le paquet texlive
Pour ce qui est des raccourcis utiles, il y en a trop ;] une petite recherche sur le net devrait t'aider. Mais:
C-c C-c : compiler (latex), voir le dvi (View) faire un dvips -o (File) Bibtex, etc
C-c C-s : nouvelle section (défaut : section, sinon la plus petite sous-section courante)
C-c C-e : nouvel environnement (defaut : itemize)
C-c C-j : nouvel \item
C-u C-c C-e : changer l'environnement
C-c ] : fermer l'environnement
C-c C-f C-c : textsc
C-c C-f C-e : emph
C-c C-f C-i : textit
C-c C-f C-b : textbf
C-c C-f C-t : texttt
C-c C-f C-r : textrm
(si entre $ $ → mathrm, ...)
C-c C-f C-d : enlever le textxx
C-u C-c C-f C-? : remplacer le textxx par text??
C-c ; : commente la région
C-c % : commente le paragraphe
C-M-\ : formater la région
M-q : formater le paragraphe
C-c C-q C-e : formater l'environnement
C-c C-q C-s : formater la section
C-c . : marquer l'environnement
C-c * : marquer la section
C-M-a : début d'environnement
C-M-e : fin d'environnement
voilà de quoi «bien» démarrer ;]
#4 Re : -1 » Résolu.gcalcli » Le 05/10/2010, à 15:02
- sensini
- Réponses : 2
C'est tout à fait normal:
une fois le programme terminé, bash s'arrête et le terminal qui va avec aussi.
essaye de remplacer
gnome-terminal -x gcalcli --config ~/.gcalclirc calw 2
par
gnome-terminal -x "gcalcli --config ~/.gcalclirc calw 2;bash"
Ceci dit, ton script va lancer un terminal qui lui même va lancer un gnome-terminal
Du coup, soit tu mets tout en une ligne
gnome-terminal -x "echo 'blabla'; gcalcli --config ~/.gcalclirc calw 2; bash"
soit tu fais un script contenant
echo blabla
gcalcli…
et tu te crées un lanceur exécutant gnome-terminal -x '/mon/super/script.sh ; bash'
En espérant ne pas avoir dit trop de bêtises ![]()
#5 Re : -1 » [RESOLU] Barre droite en programmation terminal ? » Le 01/10/2010, à 15:29
- sensini
- Réponses : 5
Salut,
tu le trouveras en alt gr sur la touche 6/-![]()
#6 Re : -1 » [RESOLU][bash]Variable construite à partir d'une autre var cont ASCII » Le 03/09/2010, à 11:07
- sensini
- Réponses : 3
Salut,
est-ce que
a=$(echo -e $car)te vas ?
sinon, si ce n'est que de l'affichage, il y a l'astuce a="-e $car" :þ
#7 Re : -1 » script d'envoie d'un texte a un adresse mail » Le 16/08/2010, à 14:31
- sensini
- Réponses : 17
http://tinyurl.com/32deyxp
Edit: ça fait un peu méchant juste mon lien… Ceci dit, qu'as-tu essayé ? quel est ton niveau de programmation ? as-tu cherché ?
#8 Re : -1 » Network Manger disparu :/ » Le 16/08/2010, à 16:05
- sensini
- Réponses : 13
As-tu fais un tour sur la doc ?
http://doc.ubuntu-fr.org/network-manager#utilisation
http://doc.ubuntu-fr.org/network-manager#problemes_et_solutions
#9 Re : -1 » Network Manger disparu :/ » Le 18/08/2010, à 15:04
- sensini
- Réponses : 13
Merci,
Mais j'aimerai savoir comment connaitre le nom de ma carte wifi ( wlanO dans l'exemple de la doc ) ??
Et aussi ou je le tape le code que tu ma donné ?
C'est à taper dans une console.
Pour la première question, toujours dans une console : sudo iwconfig
Ça devrait te donner les infos que tu cherches.
#10 Re : -1 » awesome et tests de configuration » Le 20/08/2010, à 16:04
- sensini
- Réponses : 1
Salut,
tu peux regarder là (j'ai pas essayé) :
http://awesome.naquadah.org/wiki/Using_Xephyr
Sinon, dans un terminal, awesome -k vérifie qu'il n'y a pas de bugs dans ton rc.lua. Ça ne règle pas tous les problèmes, mais ça en vérifie pas mal!
#11 Re : -1 » probleme java » Le 12/08/2010, à 13:58
- sensini
- Réponses : 6
Salut, il existe plusieurs versions de java dans les dépôts. je pense que tu dois avoir celle d'openJDK.
Essaie d'installer celle de Sun.
Je te renvoie à la doc http://doc.ubuntu-fr.org/java#faq
#12 Re : -1 » probleme java » Le 16/08/2010, à 14:35
- sensini
- Réponses : 6
À la place de
sudo apt-get install
tape
sudo apt-get install openjdk-6-jdk
Ceci dit, je suis nul en java, et j'ai bien peur que mon aide ne s'arrête là…
#13 Re : -1 » télécharger les paquets sur une autre partition » Le 16/08/2010, à 14:49
- sensini
- Réponses : 2
Sinon fais une recherche sur apt-cacher et var/cache/apt.
Il y a plusieurs tuto qui indiquent comment mettre en place un repo local pour que plusieurs machines se mettent à jour sur ce repo (avec apt-cacher).
Sinon, je pense aussi que dans ton apt.conf, tu dois pouvoir mettre un Dir::Cache là où tu veux.
À prendre avec des pincettes.
Bon courage!
#14 Re : -1 » Désactiver clique droit sur Ubuntu 10.4 » Le 09/08/2010, à 16:40
- sensini
- Réponses : 2
Salut,
a priori, je dirai que tu peux faire ça «facilement» en éditant ton xorg.conf
Je passe juste en coup de vent, mais tu devrais trouver facilement des manip sur google pour inverser boutons droite et gauche par exemple. Du coup, ben t'utilises 2 boutons gauches. sinon tu dois pouvoir trouver des ajouts de boutons aux souris. genre Option "Buttons" "7". et ben toi tu mets sur 1.
En espérant que ces pistes te suffisent.
#15 Re : -1 » [Résolu]Rediriger input et output d'une commande vers même fichier » Le 05/08/2010, à 15:10
- sensini
- Réponses : 9
Aucune idée du pourquoi du comment, mais tu peux toujours regarder de ce côté là http://tldp.org/LDP/abs/html/io-redirection.html#IOREDIRECTIONREF2 pour du bash only redirection style
En plus crade, tu dois pouvoir travailler avec du sed que je maîtrise pas du tout mais que je sais capable, pour stocker toutes les lignes, puis traiter les lignes une fois la lecture finie…
Sinon, regarde du côté de moreutils, sponge a l'air de répondre à tes besoins.
Et jette un coup d'œil ici aussi http://stackoverflow.com/questions/123235/problem-with-bash-output-redirection
#16 Re : -1 » [Résolu]Rediriger input et output d'une commande vers même fichier » Le 05/08/2010, à 16:33
- sensini
- Réponses : 9
Ah ben non, c'est clair que c'est pas du direct. En attendant, ça peut toujours être utile. (En tout cas, je connaissais pas. Maintenant si. De là à m'en servir par contre…)
#17 Re : -1 » Se passer du sudo pour UNE commande précise [Résolu] » Le 03/08/2010, à 16:43
- sensini
- Réponses : 15
je pense qu'avec visudo ça doit être possible. Quelque chose comme
zalian ALL=(root) NOPASSWD: /usr/sbin/adduserJette un coup d'œil là dessus sinon http://doc.ubuntu-fr.org/sudoers
#18 Re : -1 » Se passer du sudo pour UNE commande précise [Résolu] » Le 03/08/2010, à 17:24
- sensini
- Réponses : 15
salut, je pense que le (root) après le = est nécessaire dans ton cas.
peux-tu réessayer avec ?
#19 Re : -1 » Se passer du sudo pour UNE commande précise [Résolu] » Le 04/08/2010, à 08:49
- sensini
- Réponses : 15
Salut,
ben j'espère que c'est le cas, car si même ça ne marche pas, je ne vois pas ce que ça peut être d'autres…
désolé
#20 Re : -1 » [résolu]rédaction de page de man » Le 03/08/2010, à 11:04
- sensini
- Réponses : 3
http://tinyurl.com/22maj2h
le premier lien ? (que ce soit en anglais ou en français)
#21 Re : -1 » Xp pour Kubuntu [Résolu] » Le 03/08/2010, à 10:18
- sensini
- Réponses : 9
Linux974 a écrit :comment on fait pour l'installer
on apprend à lire ?!
En gros, as-tu suivi:
Installation:
- make sure you are on-line
- open konsole in Transformation Pack directory
- chmod +x install.sh
- sudo ./install.sh
- login as vistar7 user
#22 Re : -1 » [open office]Statistiques des mots d'un document » Le 30/07/2010, à 16:26
- sensini
- Réponses : 4
Ce que je te propose, c'est de passer par la ligne de commande… Ne prends pas peur ![]()
Si ton fichier n'est pas de type texte brut (genre c'est un .doc, . odt, .html,…) tu copies le fichier dans un fichier texte. (ou tu sélectionnes ton texte, (ctrl-a puis ctrl-c ou sélectionne à la souris) puis dans une console tu fais
cat >monfichier.txtentrée, puis tu colles ton texte sélectionné (ctrl-v, bouton du milieu(molette) ou clic droit, coller) et ctrl-d pour sortir)
Sinon, ouvre un gedit, ça marche aussi ![]()
Ensuite
cat monfichier.txt | fmt -1 |sed 's/^[ \t]*//g' | sort |uniq -c |sort -nSi tu veux enlever certain mots tu ajoutes un
| grep -v motquejeveuxpasvoir
#23 Re : -1 » [RESOLU] Script shell pour lancer deux commandes » Le 30/07/2010, à 14:25
- sensini
- Réponses : 7
Salut,
j'avoue n'avoir lu qu'en diagonale, mais je dirai
cd ${HOME}/repertoire1/repertoire2![]()
Edit: grilled
#24 Re : -1 » [RESOLU] Script shell pour lancer deux commandes » Le 30/07/2010, à 15:40
- sensini
- Réponses : 7
Essaie avec
pwd >/tmp/toto
cd ${HOME}/repertoire1/repertoire2 &>> /tmp/toto
pwd >>/tmp/toto
./mediacenter start &>> /tmp/totoet donne le contenu de /tmp/toto