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
conversion de format de date mohan705 De programmation et de script Shell 7 05-22-2008 12:10 PM
la conversion de texte en format csv gthokala De programmation et de script Shell 13 06-09-2006 11:44 AM
conversion de PDF en texte, doc format rtf saurya_s UNIX for Advanced & Expert Users 1 04-23-2004 04:25 PM
Conversion de BMP BM (ou autre format unix) EJ \u003d) UNIX Desktop for Dummies Questions & Réponses 1 06-12-2002 09:42 AM
Convertir le dossier Date de création d'un nouveau format barney_clough UNIX pour les nuls Questions et réponses 1 06-12-2002 08:43 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-18-2008
zer0dvide zer0dvide is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 3
conversion de fichier de configuration au format CSV

Bonjour,

Pour 2 jours que j'ai été la recherche d'une solution à ce problème. Je commence à douter de cela est encore possible. C'est encore plus difficile quand vous ne savez pas comment le chercher. (les mots clés qui génèrent suffisamment de pertinence, etc.)

J'ai besoin de parser un fichier de configuration pour générer un fichier CSV en retour.
Il serait nécessaire de tenir compte de ces paramètres sur le fichier:

define host (

host_name hosta
parents hostNull
)
--
define host (

host_name hostB
parents hosta
)
--
define host (

host_name hostC
parents hostB
)
--

et de créer ceci:

d'accueil, un parent
hosta, hostNull
hostB, hosta
hostC, hostB

Est-ce que quelqu'un connais un solution à ce point quelqu'un peut ou moi à certains doc qui explique comment faire?
  #2 (permalink)  
Old 03-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dec 2007
Lieu: Accueil de 17-champion du monde Boston Celtics
Messages: 1311
Wink Une approche à essayer ...

De ce que vous avez fourni info, il s'agit d'une approche.

Citation:
> Cat échantillon
define host (

host_name hosta
parents hostNull
)
--
define host (

host_name hostB
parents hosta
)
--
define host (

host_name hostC
parents hostB
)
Code:
> cat bld_csv 
#! /bin/bash

echo "host,parent" >host.csv
while read zf
  do
  hck=$(echo "$zf" | cut -d" " -f1)
  if [ "$hck" = "host_name" ]
    then
    hnm=$(echo "$zf" | cut -d" " -f2)           
  fi
  if [ "$hck" = "parents" ]
    then
    pnm=$(echo "$zf" | cut -d" " -f2)
    echo $hnm","$pnm >>host.csv
  fi

done < sample
Citation:
> Cat host.csv
d'accueil, un parent
hosta, hostNull
hostB, hosta
hostC, hostB
  #3 (permalink)  
Old 03-18-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4309
Une autre approche:

Code:
awk ' 
BEGIN{print "host,parent"}
/host_name/{p=$2;getline;print p","$2}
' sample
Observe
  #4 (permalink)  
Old 03-18-2008
ShawnMilo ShawnMilo is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 252
A One-Liner Perl

Code:
$ cat temp.txt | perl -ne 'chomp; print "host,parent\n" if $. == 1; print $_ if $_ =~ s/^host_name\s+(.*)$/$1/;  print ",$_\n" if $_ =~ s/^parents\s+(.*)$/$1/;'

host,parent
hostA,hostNull
hostB,hostA
hostC,hostB
1. Imprimer les en-têtes sur la première ligne de l'entrée.

2. Imprimer le nom de l'hôte si trouvé (sans saut de ligne)

3. Imprimer la virgule, le nom des parents, et retour à la ligne lorsque le parent est trouvé.

ShawnMilo
  #5 (permalink)  
Old 03-18-2008
summer_cherry summer_cherry is offline Forum Advisor  
Registered User
  
 

Date d'inscription: juin 2007
Lieu: Beijing Chine
Posts: 1088
Code:
nawk 'BEGIN{RS="--";n=1;host[n]=sprintf("host,parent")}
{
n=n+1
host[n]=sprintf("%s,%s",$4,$6)
}
END{
for(i=1;i<=n;i++)
if(host[i]!=",")
print host[i]
}
' filename
  #6 (permalink)  
Old 03-19-2008
faltooweb faltooweb is offline
Registered User
  
 

Join Date: Jan 2008
Messages: 11
conversion de fichier de configuration au format CSV

awk '
BEGIN (print "d'accueil, le parent")
/ host_name / (printf "% s", $ NF getline;) print $ NF
'$ INFILE

Ramesh -
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:13 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