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
besoin d'aide pour l'analyse d'un fichier CSV et générer un nouveau fichier de sortie VKR De programmation et de script Shell 15 08-01-2008 08:33 AM
Trouver plus anciens & Moving dossier par Parsing / Tri Date Info dans les noms de fichiers nikosey De programmation et de script Shell 6 07-30-2008 10:46 PM
Analyse d'un fichier aol12123 De programmation et de script Shell 11 03-25-2008 02:06 AM
Analyse d'un fichier CSV chiru_h De programmation et de script Shell 6 02-12-2008 09:33 AM
Analyse d'un fichier journal tbirenzweig De programmation et de script Shell 4 06-20-2006 08:02 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 10-13-2008
brawnr brawnr is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 2
File Parsing Aide

Bonjour,

J'ai un fichier qui contient des groupes de domaines. Ces groupes sont séparés par une ligne blanche, pour former un enregistrement logique.

Chaque ligne est composée d'un champ de valeur paire.

Si voulez trouver tous les dossiers où des «d» a une valeur de «4» et, si elle le fait, je veux que la valeur du champ 'a' (à partir du même dossier).

Voici un exemple de fichier d'entrée:
Citation:
a 1
b 2
c 3
d 4
2
b 1
d 6

b 3
6
c 2

c 2
d 4
9

c 3
d 4
3

d 4
6
Je veux finir avec un dossier contenant:
Citation:
1
6
Import de choses à Nore sur le fichier d'entrée sont: a) le nombre de dossiers varie, b) de ne pas tous les dossiers contiennent un «d» le terrain, c) de ne pas tous les dossiers contiennent un «a» le terrain, e) les champs peuvent être dans n'importe quel ordre au sein de un record.

Je pense que la réponse est d'utiliser awk, mais j'ai très peu de connaissance de AWK et ont seulement utilisé pour des choses très simples.

L'OS 5.8 est dimanche par la route.

L'aide serait grandement appréciée.

Merci.

  #2 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Date: Mar 2007
Lieu: Toronto, Canada
Messages: 2365

Sur la base de la contribution que vous avez fournies, la sortie devrait être:


Code:
1
9
3
6

Ce script vous donne ce qui suit:


Code:
awk '
/a/ { a = $2 }
/d/ { d = $2 }
/^$/ && d == 4 && a > 0 {
   print a 
   a = -1
   d = -1
}
END {
   if ( d == 4 && a > 0 ) print a
}
' "$FILE"

  #3 (permalink)  
Old 10-13-2008
shamrock shamrock is offline Forum Advisor  
Registered User
  
 

Join Date: Oct 2007
Lieu: États-Unis
Messages: 753
Imprécis

Semble être un écart important entre vos besoins et le résultat que vous attendez. Sur la base de ce que vous avez indiqué la sortie devrait ressembler à cfajohnson du script awk ... correct?
  #4 (permalink)  
Old 10-13-2008
brawnr brawnr is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 2
Désolé, vous avez raison, la sortie, il aurait fallu lire:


Code:
 
1
9
3
6

Un grand merci pour votre aide cfajohnson.
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2,926
Avec Perl:

Code:
perl -00 -ne'print $1,"\n"if/d 4/&&/a (.)/' filename

Et une autre approche AWK:


Code:
awk '/d 4/ && /a / {
  for (i=1; i<=NF; i++)
    if ($i == "a") print $(i+1)
	}' RS= filename


Dernière édition par radoulov; au 10.13.2008 04:03 PM.. Motif: remaniée
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 06:42 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