![]() |
|
|
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 |
| Lectura de un archivo y escribir el nombre del archivo a un archivo de parámetros. | thebeginer | UNIX para usuarios avanzados y expertos | 1 | 10-05-2007 05:38 PM |
| Derrame de archivo de Excel en Unix | Soumya Dash | Programación de scripts de shell y | 1 | 09-25-2006 03:56 AM |
| Lectura de los nombres de archivo de un archivo y ejecutar el archivo familiar de script de shell | anushilrai | Programación de scripts de shell y | 4 | 03-10-2006 05:25 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Cómo derramado un archivo
Hola,
Tengo un archivo, abc.txt. gustar abc.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d KOKRS EL01 RLDNR M2 RRCTY 1 Empresa Código 100 Año Fiscal 2007 Versión PW3 Moneda USD 1 2 3 4 1 2 3 4 Número de cuenta de beneficios de BA Ctr ARM Jan-Feb-TC TC A 93010000 1530 152 1429793 A 93010000 9999 403 0 0 0 A 93010000 9999 404 -142 A 93010000 9999 411 0 0 0 A 93010000 9999 465 214538 214538 6114330 A 93010000 9999 487 0 -207918 A 93010000 471 502 0 0 0 A 93010000 9999 502 0 0 0 KOKRS EL01 RLDNR M2 RRCTY 1 Empresa Código 152 Año Fiscal 2007 Versión PW3 Moneda GBP 1 2 3 4 1 2 3 4 Número de cuenta de beneficios de BA Ctr ARM Jan-Feb-TC TC A 93010000 1200 152 0 0 0 A 93010000 9999 152 -57885 -16511 -537549 KOKRS EL01 RLDNR M2 RRCTY 1 ....... ..... 500 líneas como este He derramado a este archivo en archivos diferentes según la empresa de código. por ejemplo: abc_COMCODE_100.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d KOKRS EL01 RLDNR M2 RRCTY 1 Empresa Código 100 Año Fiscal 2007 Versión PW3 Moneda USD 1 2 3 4 1 2 3 4 Número de cuenta de beneficios de BA Ctr ARM Jan-Feb-TC TC A 93010000 1530 152 1429793 A 93010000 9999 403 0 0 0 A 93010000 9999 404 -142 A 93010000 9999 411 0 0 0 A 93010000 9999 465 214538 214538 6114330 A 93010000 9999 487 0 -207918 A 93010000 471 502 0 0 0 A 93010000 9999 502 0 0 0 abc_COMCODE_152.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d KOKRS EL01 RLDNR M2 RRCTY 1 Empresa Código 152 Año Fiscal 2007 Versión PW3 Moneda GBP 1 2 3 4 1 2 3 4 Número de cuenta de beneficios de BA Ctr ARM Jan-Feb-TC TC A 93010000 1200 152 0 0 0 A 93010000 9999 152 -57885 -16511 -537549 Amablemente me indican cómo derramado a través de programa de shell de Unix. Gracias de antemano! |
|
|||||
|
Hola. Comando csplit fue diseñado para esto: Código:
#!/usr/bin/env sh
# @(#) s1 Demonstrate context split, csplit.
set -o nounset
echo
debug=":"
debug="echo"
## Use local command version for the commands in this demonstration.
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version bash csplit
echo
# Remove debris files.
rm -f xx*
FILE=${1-data1}
csplit --keep-files -z $FILE "/Company Code/-1" {*}
echo
echo " Files created:"
ls xx*
SAMPLE=xx01
echo
echo " Sample $SAMPLE:"
cat -n $SAMPLE
exit 0
La producción de: Código:
% ./s1
(Versions displayed with local utility "version")
GNU bash 2.05b.0
csplit (coreutils) 5.2.1
1
379
218
81
Files created:
xx00 xx01 xx02 xx03
Sample xx01:
1 KOKRS EL01 RLDNR M2 RRCTY 1
2 Company Code 100
3 Fiscal Year 2007
4 Version PW3
5 Currency USD
6 1 2 3 4
7 1 2 3 4
8 BA Account number Profit Ctr MRA Jan-TC Feb-TC
9 A 93010000 1530 152 1429793
10 A 93010000 9999 403 0 0 0
11 A 93010000 9999 404 -142
12 A 93010000 9999 411 0 0 0
13 A 93010000 9999 465 214538 214538 6114330
14 A 93010000 9999 487 0 -207918
15 A 93010000 471 502 0 0 0
16 A 93010000 9999 502 0 0 0
17
Ver hombre csplit para obtener detalles ... cheers, DRL |
|
|||||
|
Hola, vgersh99.
Cita:
Lo he probado en un sistema FreeBSD 4.11, y tiene sólo un anémico partir con un patrón añadida el partido, pero no csplit (ni existen en OS X). El GNUa lo largo de las opciones pueden ser reemplazados con un solo guión opciones. Se necesitaría otro proceso para extraer la cadena para que el nombre de archivo, pero eso es un buen ejercicio para el PO ... cheers, DRL |
|
||||
|
Hola Amigos,
Gracias por tu ayuda. Yo soy principiante en Unix. Estoy trabajando en ksh y csh. ahora youuplease puede explicar que la forma de ejecutar. abc.txt es mi nombre de archivo. DRL su solución parece que va a ser bien. pero no soy capaz de ejecutarlo. |
|
|||||
|
Otro: Código:
awk 'FNR == 1 {
pfx = substr(FILENAME, 1, 3) "_COMCODE_"
}
/^KOKRS/ {
fn = 0
}
/^Company Code/ {
close(fn)
fn = pfx $3 ".txt"
$0 = prev RS $0
}
fn {
print > fn
}
{
prev = $0
}' abc.txt
Utilice nawk en Solaris. Con algunas implementaciones Awk (como XPG Awk en Solairs), usted debe ser más explícito: Código:
awk 'FNR == 1 {
pfx = substr(FILENAME, 1, 3) "_COMCODE_"
}
/^KOKRS/ {
fn = 0
}
/^Company Code/ {
close(fn)
fn = pfx $3 ".txt"
$0 = prev RS $0
}
fn != 0 {
print > fn
}
{
prev = $0
}' abc.txt
PS vgersh99 del prefijo tiene más sentido, por supuesto. Última edición por radoulov; al 11-20-2007 06:38 PM.. Motivo: ps |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|