![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
| Eliminar archivo de texto en línea | Berserk | UNIX for Dummies Preguntas y Respuestas | 6 | 12-16-2008 03:44 PM |
| Cómo borrar un texto sin necesidad de abrir el archivo. | stevefox | Programación de scripts de shell y | 12 | 02-21-2008 01:24 PM |
| Eliminar primera línea de cualquier archivo de texto? | aungomarin | Programación de scripts de shell y | 5 | 05-16-2006 10:42 PM |
| cómo eliminar fuera de texto en un archivo? | forevercalz | Programación de scripts de shell y | 5 | 01-08-2006 10:28 PM |
| borrar la última línea del archivo de texto | hcclnoodles | Programación de scripts de shell y | 4 | 06-25-2002 10:52 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Sobrescribir y Eliminar en un archivo de texto
Queridos todos,
Tengo archivo de texto como el siguiente: Encabezado Registro 1 Registro 2 ....... Registro n Cola Esta línea de código: awk '(if (NR \u003d\u003d 1) (cabeza \u003d substr ($ 0,1,300);) else (ultimo \u003d substr ($ 0,1,300);) END (printf "de cabecera es: 300%-Trailer es: 300% \ n ", la cabeza, el pasado) 'filename Encabezado y Tráiler convertido en una línea y dentro de 300 caracteres each.The la producción es sólo una línea. Ahora quiero sobrescribir esta una línea más arriba (cabecera + cola) en la primera línea del archivo original (original encabezado) y borrar la cola ........ i puede copiar esta cabecera y la cola de nuevo archivo y, a continuación, añadir Registro Registro de 1 a n a este nuevo archivo, sino que también causará baja el rendimiento ........ por lo que creo mejor para actualizar la primera y la última línea de este archivo ........... ...... Entonces, ¿cómo puedo hacer eso? es decir, 1-actualizar con la nueva cabecera de línea, es decir (cabecera + remolque) 2-borrar el archivo original en la cola (se puede cortar la cola utilizando el nombre de archivo -1?) |
|
||||
|
No golpee su problema mediante la apertura de un nuevo hilo. Usted puede hacerle frente en su antiguo hilo
Encabezado y pie de página |
|
||||
|
Guardar la salida de la awk en una variable como Código:
New_head=$(awk '{ if ( NR == 1 ) { head=substr($0,1,300);} else { last = substr($0,1,300);}END{printf "Header is : %-300s Trailer is : %-300s\n", head, last}' filename )
Y entonces usted puede hacer algo como Código:
sed -e "1 c\ $New_head" -e '$d' filename |
|
||||
|
Gracias ..... he intentado, pero el código sed mando no funciona correctamente, se está dando salida:
sed: Comando ilegible: 1 c \ de cabecera es: ....... Headervalue Trailer es: Trailer valor ..... No tiene ningún cambio en el archivo como así. |
|
||||
|
suerte para mí también?
|
|
||||
|
No ha habido otro hilo como dijo Lorcan y este parece ser sólo una continuación de lo anterior hilo en un nuevo puesto. Por favor, siga posterior a su pregunta en el mismo hilo de manera que sería más fácil hacer un seguimiento en lugar de iniciar un nuevo hilo de la misma cuestión. Suponiendo que he entendido de su prueba este requisito, Código:
awk ' { if ( NR == 1 ) { head=$0 } else { last = $0 } arr[i++]=$0; }END{ printf "Header is : %s Trailer is : %s\n", head, last; for( x=0; x<i-1; x++) { print arr[x] } }' filename
Código:
Header is : header Trailer is : trailer header record 1 record 2 record 3 combinado encabezado y remolque está disponible seguida de que cabecera está disponible todos los registros se visualizan remolque registro no se muestra Si esto no es lo que usted había solicitado, háganoslo saber
|
|
||||
|
bien que está bien, pero yo estaba sólo preocupado por el número de archivos que se crean ........ hay un problema que me estoy haciendo una nueva línea (línea en blanco) al final del archivo ....... .... por qué es tan utilizando este código:
awk '(if (NR \u003d\u003d 1) (cabeza \u003d substr ($ 0,1,149);) else (ultimo \u003d substr ($ 0,1,149);) matriz [i ++]\u003d$ 0;) END (printf "%-149s% -- 149s \ n ", la cabeza, el pasado, para (x \u003d 1; x <i-1; x++) imprimir arr[x]) (}'file1> archivo2 Cuando abro archivo2, me sale una línea adicionales .......? |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|