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 dans la recherche d'une chaîne et d'envoyer un courrier électronique à l'aide du script shell ranga27 De programmation et de script Shell 10 02-19-2008 05:54 PM
Comment écrire un script pour envoyer un email à une identité madhumathikv De programmation et de script Shell 4 10-23-2007 06:19 PM
Script shell Unix pour envoyer des SMS sdcoms UNIX for Advanced & Expert Users 1 05-16-2007 12:01 PM
Shell script pour envoyer des e-mails d'alerte pour les core dump rtatineni SUN Solaris 1 08-17-2006 03:33 PM
Envoyer un e-mail à Shell script Annelisa De programmation et de script Shell 1 07-13-2006 08:35 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 06-26-2006
gthokala9 gthokala9 is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 5
Comment envoyer un fichier en tant que variable dans un script shell

Puis, nous pouvons passer le nom de fichier comme variable dans le shell script.
L'envoi du fichier comme un fichier de paramètre, le script prend le nom de fichier, les besoins de remplacer la chaîne de caractères contenant le nom du fichier à la variable dans le shell script.

EX: test1.sh est le script shell file1.csv et prend en paramètre le fichier. Puis file1.csv doit être remplacé test1.ctl dans le fichier où le fichier de contrôle contient le infile option en prenant comme test1.csv

De la ligne de commande exécuter
test1.sh file1.csv

# Prendre le file1.csv fichier et de le remplacer dans test1.ctl

# test1.ctl
charger des données
infile 'testing.csv'
......
......

Ici, la testing.csv doit être remplacé par «test1.csv 'dans le fichier test1.ctl. Espérons que le scénario est clair et toute solution est grandement appréciée. Merci.
  #2 (permalink)  
Old 06-26-2006
Ambikesh Ambikesh is offline
Registered User
  
 

Join Date: Feb 2006
Lieu: California
Posts: 45
Que voulez-vous dire en remplaçant le fichier .. souhaitez-vous copier ou renommer ..?
  #3 (permalink)  
Old 06-26-2006
gthokala9 gthokala9 is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 5
Je reçois des fichiers différents avec différents noms de fichiers par jour. Ces fichiers doivent être chargés en utilisant sqlldr utilité.
Le nom de fichier dans le fichier de contrôle est fixé à 'testing.csv ». Plutôt que de modifier le fichier de contrôle de tous les jours, j'essaie de mettre le nom de fichier comme variable par l'intermédiaire d'un script shell et de transmettre cette variable comme nom de fichier pour remplacer la chaîne dans le fichier de contrôle de testing.csv de la variable qui n'est rien d'autre que le nom du fichier.
  #4 (permalink)  
Old 06-26-2006
tmarikle tmarikle is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2005
Messages: 683
si vous voulez simplement faire quelque chose comme ceci:
Code:
my_new_file=todays_file.csv
sqlldr file=${my_new_file} control=comma_sep.ctl
Correct?
  #5 (permalink)  
Old 06-26-2006
gthokala9 gthokala9 is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 5
En fait, le fichier de contrôle contient les informations des fichiers, comme indiqué. Le fichier de contrôle doit être modifiée.

# test1.ctl
charger des données
infile 'testing.csv'
............



Dans le test1.ctl ci-dessus, nous avons besoin de remplacer testing.csv au nom du fichier que l'on passe comme paramètre à partir du shell script.
  #6 (permalink)  
Old 06-26-2006
tmarikle tmarikle is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2005
Messages: 683
Pourquoi? Le sqlldr "data \u003d" paramètre de ligne de commande remplace le paramètre INFILE. Aussi, vous pouvez simplement supprimer le fichier de heap_table vi.

Mais si vous voulez vraiment faire de la façon que vous avez décrite, vous pouvez utiliser sed.

Code:
sed -e "s/\(INFILE \).*/\1'newfile.csv'/" yourcontrolfile.ctl > newcontrolfile.ctl
ou plus précisément:
Code:
sed -e "s/\(INFILE \).*/\1'${YOURVARIABLE}'/" yourcontrolfile.ctl > newcontrolfile.ctl
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 01:59 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