The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > UNIX for Dummies Preguntas y Respuestas
.
google unix.com



UNIX for Dummies Preguntas y Respuestas Si no está seguro de que para publicar un UNIX o Linux cuestión, puesto que aquí. Todos los novatos en Linux, UNIX y bienvenida!

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
La eliminación de líneas específicas catgovind Programación de scripts de shell y 3 04-30-2008 06:40 AM
Cómo leer una sección específica y modificar en kn.naresh Programación de scripts de shell y 2 04-18-2008 01:30 AM
Impresión con líneas específicas awk NF jehrome_rando Programación de scripts de shell y 1 03-13-2007 04:23 AM
visualización de líneas específicas chevmanzz UNIX for Dummies Preguntas y Respuestas 3 05-25-2006 04:25 AM
¿Cómo se concreta en líneas de un archivo? hedgehog001 UNIX for Dummies Preguntas y Respuestas 2 08-23-2005 01:04 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 16
Cómo usar sed modificar líneas específicas

¿Podría alguien decirme cómo puedo utilizar sed para modificar las líneas siguientes líneas específicas? el archivo es el siguiente:

"TEST/SI1573.lab"
3670 8920 # h
8920 9530 hh
9530 10694 IH
.
"TEST/DR1/FAKS0/SI2203.lab"
9730 9580 # h
9580 9840 dh
Ix 9840 10652
10652 11997 r
........

Quiero modificar los primeros campos a 0 de las líneas que sigue las líneas que comienzan con "TEST. El archivo después de la operación debería ser:
"TEST/SI1573.lab"
H 0 8920 #
8920 9530 hh
9530 10694 IH
.
"TEST/DR1/FAKS0/SI2203.lab"
H 0 9580 #
9580 9840 dh
Ix 9840 10652
10652 11997 r
........
nadie puede decirle a mi manera de hacer eso? Gracias de antemano.
  #2 (Enlace permanente)  
Old 05-18-2008
época era is offline Forum Advisor  
Pastor de Gatos Inútil (en año sabático)
  
 

Fecha: marzo 2008
Ubicación: / hay / es / sólo / bin / sh
Puestos: 3.652
Código:
sed -e '/^"TEST/{p;N;s/.*\n[0-9]*/0/;}' filename
Hay muchas versiones diferentes de sed, De modo tal vez no entender exactamente el mismo dialecto como el mío.

Este aspecto de "PRUEBA" (con la apertura de una doble cotización) al comienzo de la línea. Si se encuentra, lo que imprime línea (p), Y añade la siguiente línea a la estructura del espacio (N). Esto hace que el patrón de espacio para contener dos líneas: la línea PRUEBA y la siguiente línea, separados por una nueva línea. A continuación, se sustituye (s// /) La primera línea de las características del espacio, la nueva línea, y todo número justo después de la nueva línea con un cero. En ese momento, estamos haciendo; lo que queda en la estructura del espacio se imprimirá como de costumbre.

sed sintaxis es muy concisa, y si usted no tiene un motivo concreto para usar sed para ello, tal vez un equivalente awk o Perl secuencia de comandos sería más mantenible (especialmente si usted no está muy familiarizado con sed).

Editado por última época; al 05-18-2008 06:46 AM.. Motivo: Tal vez prefiere awk o Perl, después de todo ...?
  #3 (Enlace permanente)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 16
Gracias, funciona.

Me pregunto cómo usar awk para hacerlo.
  #4 (Enlace permanente)  
Old 05-18-2008
época era is offline Forum Advisor  
Pastor de Gatos Inútil (en año sabático)
  
 

Fecha: marzo 2008
Ubicación: / hay / es / sólo / bin / sh
Puestos: 3.652
Código:
awk '/^"TEST/ { t=1 ; print; next }
t==1 { $1 = "0"; t=0; }1' filename
Esto hace que la variable No que se establece en 1 en la línea siguiente línea después de la prueba. Si este es el caso, sustituir el primer campo con un cero, y se No de nuevo a cero. El final de cualquier línea 1 causa que llega a ese punto en la secuencia de comandos que se va a imprimir. (Es un atajo, la acción predeterminada de awk es imprimir si la condición es verdadera, y 1 como una condición es siempre verdadera.)
  #5 (Enlace permanente)  
Old 05-18-2008
Jenny.palmy Jenny.palmy is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 16
Gracias, era.

¿Crees que me puede recomendar algunos libros o websit? Me gustaría saber más acerca de script. Yo siempre encuentro algunos problemas, y no podía averiguar por mí mismo.
  #6 (Enlace permanente)  
Old 05-18-2008
época era is offline Forum Advisor  
Pastor de Gatos Inútil (en año sabático)
  
 

Fecha: marzo 2008
Ubicación: / hay / es / sólo / bin / sh
Puestos: 3.652
Uno de mis favoritos personales son Kernighan y Pike's El Entorno de Programación UNIX pero es muy antiguo, por lo que algunos de los detalles periféricos han cambiado mucho desde entonces. Otra perenne es la Friedl El dominio de las expresiones regulares, Aunque puede que lucha con él en la primera si usted no está familiarizado con las herramientas que se refiere.

El O'Reilly sed Y awk libro es una buena introducción a sed awk y, aunque hay una gran cantidad de tutoriales on-line, que son probablemente tan bueno.

La sección FAQ tiene más enlaces; Soy nuevo en Unix. Libros que debo leer? - Los Foros de UNIX
Closed Thread

Marcadores

Etiquetas
regex, expresiones regulares

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 10:01 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