The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Script para captar nuevas líneas en un fichero y copiarlo al nuevo archivo fara_aris Programación de scripts de shell y 0 05-27-2008 11:11 PM
captura de un ping a un archivo MizzGail Sun Solaris 3 09-20-2007 10:31 AM
Valor de captura de archivo kris01752 UNIX para usuarios avanzados y expertos 1 08-28-2006 11:50 PM
Captura de ejecutar el comando en el archivo de registro ahmedwaseem2000 Programación de scripts de shell y 4 08-09-2006 02:06 PM
nohup captura del archivo de registro mgirinath Programación de scripts de shell y 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 05-25-2007
Mandab Mandab is offline
Usuario Registrado
  
 

Fecha: abril 2007
Puestos: 22
capturar el nombre del archivo

Estoy tratando de captar el nombre del archivo (que no es de longitud fija) y ponerlo en una variable. Se está trabajando en unix que cuando estoy corriendo el mismo script en Informatica no es que me da la salida deseada. Pero cuando la opción de comentarios (encontrar el nombre del archivo), entonces está funcionando bien. También puede porque estoy usando awk. ¿Hay alguna otra manera (excepto usando awk) para encontrar el nombre de archivo? Nombre de archivo estará en segunda línea del archivo con otros 2 elementos filesize numérico (10) y de registros numéricos (8).

Aquí está mi código:
#! / bin / ksh

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

echo "$ header_fname"

Ejemplo de archivo:
id_xyz20070523085554004
abcdefgh.csv000000324100000036
  #2 (Enlace permanente)  
Old 05-25-2007
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: abril 2004
Ubicación: Burdeos, Francia
Mensajes: 1.433

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

o

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

Jean-Pierre.
  #3 (Enlace permanente)  
Old 05-25-2007
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Fecha: marzo 2007
Ubicación: Toronto, Canadá
Puestos: 2.365
Cita:
Publicado originalmente por Mandab
Estoy tratando de captar el nombre del archivo (que no es de longitud fija) y ponerlo en una variable. Se está trabajando en unix que cuando estoy corriendo el mismo script en Informatica no es que me da la salida deseada. Pero cuando la opción de comentarios (encontrar el nombre del archivo), entonces está funcionando bien. También puede porque estoy usando awk. ¿Hay alguna otra manera (excepto usando awk) para encontrar el nombre de archivo? Nombre de archivo estará en segunda línea del archivo con otros 2 elementos filesize numérico (10) y de registros numéricos (8).

Aquí está mi código:
#! / bin / ksh

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

echo "$ header_fname"

Ejemplo de archivo:
id_xyz20070523085554004
abcdefgh.csv000000324100000036

BOURNE en cualquier tipo de shell (bash, ksh, sh, etc):


Código:
{
 read line
 IFS=0123456789 read header_fname junk
} < "$FILE"
echo "$header_fname"

  #4 (Enlace permanente)  
Old 05-26-2007
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: abril 2004
Ubicación: Burdeos, Francia
Mensajes: 1.433
Cita:
Publicado originalmente por cfajohnson
BOURNE en cualquier tipo de shell (bash, ksh, sh, etc):


Código:
{
 read line
 IFS=0123456789 read header_fname junk
} < "$FILE"
echo "$header_fname"

No funciona si el nombre del archivo contiene cualquier carácter numérico.

Jean-Pierre.
  #5 (Enlace permanente)  
Old 05-29-2007
Mandab Mandab is offline
Usuario Registrado
  
 

Fecha: abril 2007
Puestos: 22
Gracias Aigles, que está trabajando perfectamente.
Closed Thread

Marcadores

Etiquetas
bash, bash eval, eval

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 09:08 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0