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
trouver schéma, supprimer la ligne avec un motif et la ligne au-dessus et au dessous de la ligne nickg De programmation et de script Shell 4 01-29-2009 01:38 PM
Extrait du modèle de texte en ligne TehOne De programmation et de script Shell 4 12-25-2008 01:25 PM
Extrait du modèle de texte en ligne TehOne De programmation et de script Shell 3 10-15-2008 01:46 PM
Extrait du modèle de texte en ligne vampirodolce De programmation et de script Shell 9 10-14-2008 12:17 PM
extrait d'un modèle de début et de fin à partir d'une ligne manish205 De programmation et de script Shell 7 02-07-2008 06:18 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 05-27-2009
TestTomas TestTomas is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 2
sed: Trouver début de modèle et d'en extraire le texte à la fin de la ligne, y compris le modèle

C'est mon premier post, s'il vous plaît être gentil. J'ai essayé de google et à lire différents tutoriels.

La tâche à accomplir est la suivante:

Input file input.txt (exemple)

abc123defhij-E-1234jslo
456ujs-W-abXjklp

De ce fichier, la tâche est à la grep-E et W-cordes qui sont uniques et à écrire un nouveau fichier, à commencer par le modèle pair (-E-,-O-)

Le résultat final devrait ressembler à ceci:

-E-1234jslo
-W-abXjklp

Le plus proche je viens de le faire est d'utiliser ce code:

Code:
grep -e '-[EW]-' input.txt | sed 's/.*'-[EW]-'//'
La sortie ressemble à ceci:

1234jslo
abXjklp

Le problème est que cela ne me donne pas la-E et W, qui fait partie de l'expression régulière. Je suppose que j'ai besoin d'un moyen de faire correspondre à la partie dans la remplacer en partie sed.

Merci d'avance pour toute aide.

Dernière édition par TestTomas; au 05.27.2009 10:33 AM.. Motif: faute d'orthographe corrigée
  #2 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
Code:
sed '/-[EW]-/s/.*-[EW]-\(.*\)/\1/' input.txt
  #3 (permalink)  
Old 05-27-2009
edgarvm edgarvm is offline
Registered User
  
 

Join Date: Mai 2009
Posts: 26
J'ai fait quelques modifications à votre solution, essayez ceci:
Code:
grep -e '-[EW]-' input.txt | sed 's/^.*\(-[EW]-\)/\1/'
  #4 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
Citation:
Posté par edgarvm View Post
J'ai fait quelques modifications à votre solution, essayez ceci:
Code:
grep -e '-[EW]-' input.txt | sed 's/^.*\(-[EW]-\)/\1/'
Je ne pense pas qu'il produit les résultats que l'OP est après.
Aussi il n'est pas nécessaire d'utiliser 'grep' quand sed peut faire de même.
  #5 (permalink)  
Old 05-27-2009
TestTomas TestTomas is offline
Registered User
  
 

Join Date: Mai 2009
Messages: 2
Il fait le tour, je vous remercie beaucoup

Edit:
En fait, la pure sedla version «fixe» les lignes correspondant à la structure, mais aussi l'impression de toutes les lignes correspondant à la version tout a fonctionné parfaitement avec grep

Dernière édition par TestTomas; au 05.27.2009 11:55 AM.. Motif: extension de l'information.
  #6 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
désolé - essayez ceci:
Code:
sed -n '/-[EW]-/s/.*-[EW]-\(.*\)/\1/p' input.txt
Closed Thread

Bookmarks

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 08:10 PM.


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