The UNIX and Linux Forums  


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
Comment faire pour remplacer tous les caractères de nouvelle char. mightysam De programmation et de script Shell 5 09-18-2008 09:15 PM
extraction de la dernière, mais un char dans une ligne hidnana De programmation et de script Shell 1 02-14-2008 08:48 AM
AWK extraction harris2107 De programmation et de script Shell 2 01-15-2008 11:44 AM
AWK extraction harris2107 De programmation et de script Shell 3 08-17-2007 06:02 AM
Aide à l'extraction de goudron! manthasirisha De programmation et de script Shell 4 03-17-2006 07:17 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 02-14-2008
hidnana hidnana is offline
Registered User
  
 

Join Date: Feb 2008
Posts: 14
extraction de la dernière, mais un char

J'ai besoin d'extraire le caractère avant le dernier "|" dans les lignes suivantes, qui sont des «N» et «U». Le dernier "|" ne doit pas être extrait. En outre, la no.s de "|" mai varier d'une ligne, mais j'ai besoin que le caractère avant le dernier.

TT-CAP-N241485-0005241485 | Administrateur | INC_ORGANISATION_NAME | SUPERIOR_TITLE_1 | REV | FIRST_NAME_1 | MIDDLE_NAME_1 | SURNA ME_FIELD | Adresses INC 1 | INC adresse 2 | adresse INC 3 | Adresses INC 4 | INC Adresses 5 | Adresses INC 6 | IN123EC | MALTE | Y | | M | | Y | LIFEASSURED 2 | Y | N |||||||||||||||||||||||| Y | | Y ||||||| ||||| PRU | A | | 289,832 | | | FCBGFBF | Y | Y | 1 | DC | 1 | 1 | 3 | O | O | | 20300601 | | | CAP | 5649369 | VVUMU7SMT0 | HCBCBFDJF | N | O | N | O | O | N | O | O | N | 3 | | 6 | C | 20051205 | 555555555 ||||| 20070604 | 4 | 15 | | C | 0 | 9 | 4527 | 0 | | 20071109 | 4 | C | 982062 | 23569837 | 36657407 | 9096 | | 20071205 | 1 | N |

TT-CAP-5241492-0005241492 | ADMINISTRATOR1 | INC_ORGANISATION_NAME | SUPERIOR_TITLE_1 | MS | FIRST_NAME_1 | MIDDLE_NAME_1 | SURNA ME_FIELD | Adresses INC 1 | INC adresse 2 | adresse INC 3 | Adresses INC 4 | INC Adresses 5 | Adresses INC 6 | IN123EC | | N | | F | | N | VIE ASSURÉE 1 | Y | N |||||||||||||||||||||||| Y | | Y ||||||| ||||| PRU | ODR | | 200,006 | | | EB | X | Y | 3 | DC | 2 | 1 | 3 | O | O | | 20301207 | | | CAP | 5649376 | ZLBFQDGVGIOIJDHKNDK | F | N | O | O | N | O | N | N | O | N | 4 | | 7 | C | 20051205 | 555555555 ||||| 20070604 | 2 | 1600770 | | B | 281215 | 66 | 124,002 | 923,545 | | 20060405 | 1 | C | 1446100 | 92811 | 64148521 | 5 | | 20071205 | 1 | U |

Je ne suis pas en mesure de parvenir à réduire par commande. Comment peut-il être fait?

Dernière édition par hidnana; au 02.14.2008 06:06 AM..
  #2 (permalink)  
Old 02-14-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Messages: 2556
vous pouvez utiliser awk, régler le séparateur de champs de FS "|", puis d'utiliser la marque NF incorporé variable pour obtenir le dernier champ. pour la dernière seconde le terrain, l'utilisation NF-1. pour obtenir cette valeur, préfixer signe dollar, par exemple $ (NF-1)
  #3 (permalink)  
Old 02-14-2008
Bakounine bakunin is online now Forum Staff  
Bughunter Extraordinaire
  
 

Join Date: Mai 2005
Situation: A la gauche octet de / dev / kmem
Messages: 1634
Comme la barre est le dernier caractère de la ligne, il est compensé par "|$". De là, il est facile de construire la suite de regexp:

sed 's / .* \ ([NU] \) | $ / \ 1 /'

i hope this helps

Bakounine
  #4 (permalink)  
Old 02-14-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2003
Lieu: Florida
Messages: 1937
Une solution plus générale en utilisant sed est


Code:
sed 's/.*\(.\)|$/\1/' file

  #5 (permalink)  
Old 02-14-2008
Bakounine bakunin is online now Forum Staff  
Bughunter Extraordinaire
  
 

Join Date: Mai 2005
Situation: A la gauche octet de / dev / kmem
Messages: 1634
Citation:
Posté par fpmurphy View Post
Une solution plus générale en utilisant sed est
Vous avez raison, bien sûr. Je ne l'aurais pas limité si le fil-démarreur n'aurait pas déclaré explicitement que la nature ne peut être que "N" ou "U".

Il est peut-être une question de philosophie de programmation (ce qui n'est pas le sujet de ce fil - du moins pas directement), je préfère ma solution la plus générale, suivie d'une ligne de capture de toutes les lignes ne correspondent pas à ma solution de le signaler comme suspects - les lignes qui "ne devrait pas exister" à tous.

Le fait est: si un cahier des charges précise que le caractère spécifique ne peut être que "N" ou "U", alors je souhaite être informé si une ligne ni avec "N" ou "U" sur ce qui est en place. Peut-être le cahier des charges a changé, peut-être que mon script est défectueuse, peut-être certaines des mesures de pré-traitement produisant les lignes sont défectueux - que ce soit. Au moins il ya quelque chose de * * qui ont pu être traitées.

Avec tout le respect
Bakounine
  #6 (permalink)  
Old 02-14-2008
hidnana hidnana is offline
Registered User
  
 

Join Date: Feb 2008
Posts: 14
Merci de vos précieuses suggestions.
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 05:55 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