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
Script pour saisir de nouvelles lignes dans un fichier et de le copier à nouveau fichier fara_aris De programmation et de script Shell 0 05-27-2008 11:11 PM
capture ping vers un fichier MizzGail SUN Solaris 3 09-20-2007 10:31 AM
Capture de valeur à partir d'un fichier kris01752 UNIX for Advanced & Expert Users 1 08-28-2006 11:50 PM
Capture d'exécuter la commande dans le fichier de log ahmedwaseem2000 De programmation et de script Shell 4 08-09-2006 02:06 PM
nohup capture de fichiers log mgirinath De programmation et de script Shell 2 04-24-2006 05:51 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 Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-25-2007
Mandab Mandab is offline
Registered User
  
 

Join Date: Apr 2007
Posts: 22
saisir le nom du fichier

J'essaie de saisir le nom du fichier (ce qui n'est pas de longueur fixe) et les mettre dans une variable. Il travaille en unix que lorsque je marche dans le même script, Informatica, il n'est pas de me donner la puissance souhaitée. Mais quand je commente l'option (trouver le nom du fichier), puis il travaille bien. Il peut aussi parce que je suis en train d'utiliser awk. Existe-t-il une autre manière (autre que d'utiliser awk) pour trouver le nom du fichier? Nom du fichier sera en deuxième ligne du fichier avec 2 autres articles filesize numérique (10) et les enregistrements numériques (8).

Voici mon code:
#! / bin / ksh

eval $ (awk 'NR \u003d\u003d 2 (
printf "header_fname \u003d \"% s \ "\ n", substr ($ 0,1, longueur-18) # # nom de fichier
) '$ 1)

echo "$ header_fname"

Exemple de fichier:
id_xyz20070523085554004
abcdefgh.csv000000324100000036
  #2 (permalink)  
Old 05-25-2007
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Registered User
  
 

Date d'inscription: avril 2004
Lieu: Bordeaux, France
Posts: 1433

Code:
header_fname=`awk 'NR==2 { print substr($0,1,length-18) }' $1`
echo $header_fname

ou

Code:
#!/bin/ksh
{
  read line
  read line
} < $1
header_fname=${line%??????????????????}
echo $header_fname

Jean-Pierre.
  #3 (permalink)  
Old 05-25-2007
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Date: Mar 2007
Lieu: Toronto, Canada
Posts: 2372
Citation:
Posté par Mandab
J'essaie de saisir le nom du fichier (ce qui n'est pas de longueur fixe) et les mettre dans une variable. Il travaille en unix que lorsque je marche dans le même script, Informatica, il n'est pas de me donner la puissance souhaitée. Mais quand je commente l'option (trouver le nom du fichier), puis il travaille bien. Il peut aussi parce que je suis en train d'utiliser awk. Existe-t-il une autre manière (autre que d'utiliser awk) pour trouver le nom du fichier? Nom du fichier sera en deuxième ligne du fichier avec 2 autres articles filesize numérique (10) et les enregistrements numériques (8).

Voici mon code:
#! / bin / ksh

eval $ (awk 'NR \u003d\u003d 2 (
printf "header_fname \u003d \"% s \ "\ n", substr ($ 0,1, longueur-18) # # nom de fichier
) '$ 1)

echo "$ header_fname"

Exemple de fichier:
id_xyz20070523085554004
abcdefgh.csv000000324100000036

En tout état de BOURNE-type shell (bash, ksh, sh, etc):


Code:
{
 read line
 IFS=0123456789 read header_fname junk
} < "$FILE"
echo "$header_fname"

  #4 (permalink)  
Old 05-26-2007
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Registered User
  
 

Date d'inscription: avril 2004
Lieu: Bordeaux, France
Posts: 1433
Citation:
Posté par cfajohnson
En tout état de BOURNE-type shell (bash, ksh, sh, etc):


Code:
{
 read line
 IFS=0123456789 read header_fname junk
} < "$FILE"
echo "$header_fname"

Ne fonctionne pas si le nom du fichier contient un caractère numérique.

Jean-Pierre.
  #5 (permalink)  
Old 05-29-2007
Mandab Mandab is offline
Registered User
  
 

Join Date: Apr 2007
Posts: 22
Merci Aigles, il fonctionne parfaitement.
Closed Thread

Bookmarks

Tags
bash, bash eval, eval

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 11:19 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