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
lectura archivo de texto línea por línea MizzGail Programación de scripts de shell y 6 04-14-2008 07:58 AM
Línea por línea el archivo de lectura ... y mucho más! ProFiction Programación de scripts de shell y 6 07-26-2007 12:32 PM
Lectura línea por línea a partir de un archivo tej.buch Programación de scripts de shell y 2 01-23-2006 02:50 AM
sed no la salida de la última línea del archivo de entrada 2reperry Programación de scripts de shell y 3 12-16-2005 12:51 PM
Lectura línea por línea del archivo. akpopa UNIX for Dummies Preguntas y Respuestas 4 08-30-2001 11:20 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 07-17-2008
La oscuridad de pescado Darkness Fish is offline
Usuario Registrado
  
 

Fecha: julio 2008
Publicaciones: 2
Question Problema con la lectura de archivos línea por línea, y la salida a un nuevo archivo

Hola a todos. Me doy cuenta de esto es probablemente un poco de noob cuestión, pero estoy realmente un programador de C # trabajar en un sistema de legado, y no puede recordar mucho unix.

Quiero leer de una tubería-delimeted archivo con formato como thusly:

idno | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc
idno | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc
idno | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc

Quiero copiar cada línea en otro archivo, depende de la PRODUCTO existentes en una variable de cadena que estoy en la celebración de la memoria: "prod1 | prod2 | prod3" ($ productos en el ejemplo a continuación)

Por lo tanto, estaba tratando:

para la línea en `cat $ temp_dir / $ archivo | awk '(print $ 0)'`
hacer
productos \u003d `echo" $ line "| awk 'BEGIN (FS \u003d"|"} (print $ 2)'`
valid_prod \u003d `echo $ productos | grep" $ productos "»
if [-n "$ valid_prod"] y, a continuación,
echo "$ line">> $ new_file.txt
fi
hecho

Sin embargo, esta línea parece que la variable independiente sobre la base de los espacios, creando el nuevo archivo como:

idno | PRODUCTO | Nombre | calle
pueblo
código postal | etc | etc | etc | etc

¿Existe de todos modos me puede pasar a través de cada línea como un solo parámetro, independientemente de los espacios?

Cualquier ayuda se aprecia con gratitud,
Dave
  #2 (Enlace permanente)  
Old 07-17-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Fecha: diciembre 2007
Ubicación: Casa de 17-veces campeón mundial de Boston Celtics
Puestos: 1.311
Wink Un enfoque diferente (aunque no probado)


Código:
while read zf
   do
   prod=$(echo "$zf" | cut -d"|" -f2)
   valid_prod=$(echo "$products" | grep "$prod")
   if [ -n "$valid_prod" ]
      then
      echo "$zf" >>$new_file
   fi
done <$filename

A veces me siento tan confundida utilizando la 'y `por lo tanto, prefiero el enfoque anterior.
  #3 (Enlace permanente)  
Old 07-17-2008
TinWalrus TinWalrus is offline
Usuario Registrado
  
 

Fecha: Mayo 2007
Puestos: 35
Ifs

puede manipular el IFS (separadores de campo internos) - como ejemplo - go.dat dado que contiene las líneas con espacios

# Crear la matriz, sin la manipulación de la Federación, espacios de descanso de la serie
#
-Un conjunto de líneas $ (cat go.dat)
para la línea en "$ (líneas [@]}"; hacer
echo "" $ linea "
hecho

# Crear la matriz, pero en primer lugar cambiar el IFS (conjunto de nuevo - es muy importante)
# Después de la matriz está definido
#
oIFS \u003d $ IFS
IFS IFS \u003d $ (# #?)
-Un conjunto de líneas $ (cat go.dat)
IFS \u003d $ oIFS

para la línea en "$ (líneas [@]}"; hacer
echo "" $ linea "
hecho


# # # # # # Go.dat
un idno | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc
idno b | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc
idno c | PRODUCTO | Nombre | calle ciudad código postal | etc | etc | etc | etc

# # # Fin # # # go.dat


Me doy cuenta de que no ayuda a su problema (responde a la oscuridad ya los peces), de modo que pensé que tirar mi .02 en unos IFS - puesto que he sido mordido por que en el pasado - y que es práctica muy a menudo
  #4 (Enlace permanente)  
Old 07-18-2008
La oscuridad de pescado Darkness Fish is offline
Usuario Registrado
  
 

Fecha: julio 2008
Publicaciones: 2
Muchas gracias por su ayuda, tanto de ustedes, es muy apreciado.

Yo estaba perdido en un mundo de azar ininteligible awk comandos encontrado a través de Google.
  #5 (Enlace permanente)  
Old 07-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Fecha: diciembre 2007
Ubicación: Casa de 17-veces campeón mundial de Boston Celtics
Puestos: 1.311
Cool En Unix, hay un casi infinito número de maneras de resolver las cosas

Al leer a través de este foro, usted debe obtener un sabor de las diferentes maneras de resolver un problema. Hay cuestiones de
awk vs grep o cortar
inútil del gato
y muchos otros. Algunas soluciones pueden ser más robustas, mientras que otros sólo ven bien.

Por lo tanto, no menospreciar pobre awk - que sirve para fines muy determinados problemas de base de datos.
Closed Thread

Marcadores

Etiquetas
awk, archivo, grep o, leer, espacios, escribir

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