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
Nouveau à la scénarisation, Besoin d'aide newbie22102 De programmation et de script Shell 2 02-25-2008 11:08 AM
l'aide de scripts james94538 De programmation et de script Shell 2 02-08-2008 07:36 PM
AIX différence entre les scripts shell et Unix shell scripting. haroonec De programmation et de script Shell 2 04-12-2006 09:12 AM
script du gourou pls m'aider avec les scripts sur AIX thatiprashant De programmation et de script Shell 1 01-20-2006 07:58 PM
KSH Scripting dstaller De programmation et de script Shell 1 11-16-2005 02:30 PM

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 Rating: Thread Rating: 1 votes, 5.00 average. Modes d'affichage
  #1 (permalink)  
Old 10-10-2008
nani123 nani123 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 2
Besoin d'aide de scripts

Chers Scripting experts,
Demande de me guider dans le déplacement des colonnes aux lignes
Exemple:
Fichier 1:

1, a, b, c, d, e, f, g, h
2, f, g, h, i, l

Fichier de sortie
1, a, b, c
1, d, e, f
1, g, h
2, f, g, h
2, i, l


En fait, j'ai essayé avec l'aide de awk et sed mais malheureusement, je ne pouvais pas obtenir la résultante.

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

Join Date: Mar 2007
Lieu: Toronto, Canada
Posts: 2,380
Citation:
Posté par nani123 View Post
Chers Scripting experts,
Demande de me guider dans le déplacement des colonnes aux lignes

Votre exemple ne pas déplacer les colonnes pour les lignes, il se sépare de lignes.

Voici une solution shell.

Code:
IFS=,
set -f
while read line
do
  set -- $line
  if [ $# -le 4 ]
  then
    print "$line"
  else
   a=$1
   shift
   while [ $# -gt 3 ]
   do
     printf "%s," "$a" "$1" "$2"
     printf "%s\n" "$3"
     shift 3
   done
   printf "%s," "$a"
   while [ $# -gt 1 ]
   do
     printf "%s," "$1"
     shift
   done
   printf "%s\n" "$1"
  fi
done < "$FILE"

Si le fichier est gros, il est lent, et vous devez convertir le script awk à l'aide de la même logique.
  #3 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
Utilisez nawk / ou usr/xpg4/bin/awk sur Solaris:


Code:
$ cat file
1,a,b,c,d,e,f,g,h
2,f,g,h,i,l
$ awk -F, '{
  printf$1FS;c=0
  for(i=2;i<=NF;i++)
    printf$i (++c%3?i==NF?RS:FS:RS$1FS)
}' file
1,a,b,c
1,d,e,f
1,g,h
2,f,g,h
2,i,l

  #4 (permalink)  
Old 10-13-2008
pkumar3 pkumar3 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 7
Plz Trouvez l'erreur dans le code suivant

cut-f 7,34 --d "," first97col.CSV | awk-F \ '(
if ($ 2 !\u003d"") printf $ 1FS c \u003d 0
for (i \u003d 2; i <\u003d NF; i + +)
printf $ i (+ + c% 4? i \u003d\u003d NF? RS: FS: RS $ 1FS) fi;
) '

Dernière édition par pkumar3; au 10.13.2008 09:41 AM..
  #5 (permalink)  
Old 10-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
Citation:
Posté par pkumar3 View Post
Salut j'ai un problème similaire.
fichier source est de format
1, a, b, c, d, e, f, g, h
2
3, f, g, h, i, l
4
5, m, n

Et le fichier de sortie attendue
1, a, b, c
1, d, e, f
1, g, h
3, f, g, h
3, i, l
5, m, n

J'ai utilisé cette méthode
awk-F, '$ 1! \u003d p1 (printf "% s,% s,% s,% s \ n", $ 1, $ 2, $ 3, $ 4 $ 2)! p2 \u003d (printf "% s,% s,% s ,% s \ n ", $ 1 $, 5 $, 6 $, 7 $, 8 $; p1 \u003d $ 1; p2 \u003d $ 2) '

le no de colonnes dans le fichier source est varriable de longueur et peut atteindre jusqu'à 3000.

Code:
perl -F, -nae'if($#F){s/((?:(?:.*?),){3}[^,]*)/$1\n$F[0]/g;print}' filename

  #6 (permalink)  
Old 10-10-2008
ShawnMilo ShawnMilo is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 252
Voici une approche assez simple Python (testé et fonctionne).


Code:
$ cat nani123.py 
#!/usr/bin/env python

input = open("temp.txt", 'r')

for line in input:

    line = line.rstrip()
    line = line.split(',')
    num = line[0]
    data = line[1:]

    while data:
        print num + "," + ','.join(data[:3])
        data = data[3:]

Test:


Code:
$ cat temp.txt 
1,a,b,c,d,e,f,g,h
2,f,g,h,i,l


$ python nani123.py 
1,a,b,c
1,d,e,f
1,g,h
2,f,g,h
2,i,l

  #7 (permalink)  
Old 10-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
Perl est manquant:


Code:
perl -F, -pae's/((?:(?:.*?),){3}[^,]*)/$1\n$F[0]/g' file

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 04:52 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