" à la fin d'une ligne qui contient / commence par sed de filtrage ou de passer des variables - The UNIX et Linux Forums
The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
compter les lignes correspondant à un modèle, entre les deux modèle, et de générer un onglet d.chauliac De programmation et de script Shell 4 03-19-2009 01:30 PM
pattern matching talashil De programmation et de script Shell 2 02-10-2009 10:59 AM
commentaire / supprimer un modèle particulier à partir de la deuxième ligne de l'adéquation profil IMAS De programmation et de script Shell 4 10-13-2008 02:37 AM
Filtrages blue_bird UNIX et Linux Applications 3 10-08-2008 01:23 AM
besoin d'aide pour le filtrage Himani UNIX pour les nuls Questions et réponses 10 01-22-2008 07:30 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-17-2009
sky_rivers sky_rivers is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 4
sed de filtrage ou de passer des variables

J'ai besoin sed d'ajouter un "/>" à la fin d'une ligne qui contient / commence par <meta.

ligne courante est
Code HTML:
<meta name="keywords" content="kayword 1, kwyword2">
et devrait être
Code HTML:
<meta name="keywords" content="kayword 1, kwyword2 " />

i besoin de quelque chose comme ça?
Code:
find . -name "*.html" -print0 | xargs -0 sed -i 's/<meta *>/<meta * \/>/g'
toute aide serait appréciée
  #2 (permalink)  
Old 03-17-2009
JCastro JCastro is offline
Registered User
  
 

Date d'inscription: mars 2009
Lieu: Canaries. Espagne
Messages: 5
Essayez:
Code:
 sed -n '/^<meta/p' test | sed 's\>\ />\g'
(sed ne prend que les lignes commençant par <meta et changements> pour />)
  #3 (permalink)  
Old 03-17-2009
JCastro JCastro is offline
Registered User
  
 

Date d'inscription: mars 2009
Lieu: Canaries. Espagne
Messages: 5
.... note que "test" doit être votre propre fichier ...
  #4 (permalink)  
Old 03-17-2009
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4,294
Une autre approche:

Code:
sed 's!\(<meta.*\).$!\1 />!'
Observe
  #5 (permalink)  
Old 03-17-2009
sky_rivers sky_rivers is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 4
J'ai essayé
Code:
's!\(<meta.*\).$!\1 />!'
à trouver, comme ce
Code:
find . -name "*.html" -print0 | xargs -0 sed -i 's!\(<meta.*\).$!\1 />!'
Il fonctionne, mais le résultat de deux ">" comme ça ...
Code HTML:
<meta name="keywords" content="keyword1, keyword2"> />
i pourrait exécuter un autre sed de remplacer "> />", mais si il est facile de trouver l'amélioration de la section ci-dessus?

J'ai joué avec JCastro l'exemple, mais n'a pas pu obtenir de travailler avec fil pour trouver des sed

Je suis proche et d'avoir suffisamment de jouer plus loin, mais toute aide serait génial.
  #6 (permalink)  
Old 03-17-2009
sky_rivers sky_rivers is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 4
Cela fonctionne ...
Code:
find lib/lib-pal -name "*.html" -print0 | xargs -0 sed -i 's!\(<meta.*\).$!\1 />!;s/"> \/>/" \/>/g'
Merci

Dernière édition par sky_rivers; au 03.17.2009 02:05 PM..
  #7 (permalink)  
Old 03-18-2009
sky_rivers sky_rivers is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 4
Les utilisations suivantes des expressions régulières pour supprimer tout les caractères non cotées (y compris les ">") et semble être plus prévisible.
Code HTML:
find . -name "*.html" -print0 | xargs -0 sed -i s/\(<meta name[a-zA-Z \=\"\,\.\0-8\&\;\@-]*\).*/\1 \/>/
Closed Thread

Bookmarks

Tags
rechercher, sed, xargs

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 01:12 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0