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
Délimité Fichier Aide garpal UNIX pour les nuls Questions et réponses 6 03-28-2008 09:58 AM
awk - production délimitée videsh77 UNIX for Advanced & Expert Users 1 12-04-2007 10:41 PM
Travailler avec des fichiers délimités par des tabulations shiroh_1982 De programmation et de script Shell 1 05-31-2006 03:31 PM
Supprimer les espaces à partir de fichiers délimités djkane De programmation et de script Shell 6 03-29-2006 07:11 AM
Convertir fichier délimité à l'onglet fichier délimité dans Comma Unix charan81 De programmation et de script Shell 22 01-20-2006 09:24 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 01-10-2006
hrshah74 hrshah74 is offline
Registered User
  
 

Join Date: Jan 2006
Messages: 3
Délimitée fichiers

Un de mes fichiers dans le dossier ci-dessous.
"FSNAME_01102006B_input.csv", 10 ", Nom, Prénom", "CUST"

Comment puis-je diviser cette ligne et de stocker des valeurs dans 4 variables?

Merci
  #2 (permalink)  
Old 01-10-2006
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrateur
  
 

Join Date: Mar 2005
Lieu: Irlande
Posts: 4,211
Code:
#! /usr/bin/ksh

OLD_IFS="$IFS"
IFS=","

while read field1 field2 field3 field4 ; do
    echo "field1=$field1 field2=$field2 field3=$field3 field4=$field4"
done < file

IFS="$OLD_IFS"
  #3 (permalink)  
Old 01-10-2006
hrshah74 hrshah74 is offline
Registered User
  
 

Join Date: Jan 2006
Messages: 3
Comma dans le champ 3 est une question

Salut
La virgule dans les 3 vis de votre solution.
Lorsque j'ai couru le script, j'ai eu la suite

field1 \u003d "F000GB_01102006A_input.csv" champ2 \u003d 10 field3 \u003d "Long Beach field4 \u003d
Acceptance Corp "," F000GB "

Je veux le format suivant
field1 \u003d "F000GB_01102006A_input.csv" champ2 \u003d 10 field3 \u003d "Long Beach,
Acceptance Corp "field4 \u003d" F000GB "
  #4 (permalink)  
Old 01-10-2006
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Inscrits Geek
  
 

Join Date: Dec 2003
Lieu: Melbourne, Australie
Messages: 2100
Ceci est * très * spécifiques à la ligne d'entrée que vous avez donné à votre message original. Ce n'est pas la solution la plus efficace, mais elle fonctionne en utilisant votre fourni d'entrée.

Code:
[root@MYAUSLV00100118 tmp]# cat ./foo.ksh
#! /bin/bash

while read line; do
    field1=`echo "${line}" | sed 's/^\([^,]*\),.*$/\1/'`
    field2=`echo "${line}" | sed 's/^[^,]*,\([^,]*\),.*$/\1/'`
    field3=`echo "${line}" | sed 's/^[^,]*,[^,]*,\(\"[^\"]*\"\),.*$/\1/'`
    field4=`echo "${line}" | sed 's/^[^,]*,[^,]*,\"[^\"]*\",\([^,]*\).*$/\1/'`
    echo "field1=${field1}"
    echo "field2=${field2}"
    echo "field3=${field3}"
    echo "field4=${field4}"
done < foo.csv

exit 0
[root@MYAUSLV00100118 tmp]# cat ./foo.csv
"FSNAME_01102006B_input.csv",10,"First Name, Last Name"," CUST"
[root@MYAUSLV00100118 tmp]# ./foo.ksh
field1="FSNAME_01102006B_input.csv"
field2=10
field3="First Name, Last Name"
field4=" CUST"
À la vôtre
ZB
  #5 (permalink)  
Old 02-01-2006
hrshah74 hrshah74 is offline
Registered User
  
 

Join Date: Jan 2006
Messages: 3
Près de format similaire

Salut zazzybob,
Il travaille pour de simples fomat que j'ai joint à mon poste auparavant. Mais si ne fonctionne pas pour les format suivant.

"FSNAME_01102006B_input.csv", 10 ", Firstr, Name, Last, Name", "CUSTr nom"

Différence du premier format est ... des espaces supplémentaires après la deuxième et la troisième virgule. Est-il possible de récupérer les valeurs de champ de ces record?

Observe
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 07:13 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