necesita crear un script de shell o un comando en unix que pueda realizar el siguiente proceso (se preferirá el comando)

StackOverflow https://stackoverflow.com/questions/1409565

  •  05-07-2019
  •  | 
  •  

Pregunta

en la siguiente ruta

\\ncsusnasent02.na.jnj.com\its_diq_na_win_dev\PowerCenter\infa_shared\WCPIT_BIO_EDW\SrcFiles\DDDMD\DDD.CLI026.WK0933.DDDMR45.001.head

Tengo un archivo DDD.CLI026.WK0933.DDDMR45.001.head

si abro este archivo Obtengo los datos de la siguiente manera (en una sola línea)

HEADER0101IMS HEALTHDMD Semanal D DD.CLI026.WK0933.DDDMR45 Centocor DMDDRM45 W2009080210120090831125325ssnyder@us.imshealth.com
    TRAIL0101 000000000 581 0000000000CKSUM000002236804730

necesitamos copiar 581 (no será lo mismo siempre que se actualice todos los días) de este archivo y actualízalo en la siguiente ubicación

\\ncsusnasent02.na.jnj.com\its_diq_na_win_dev\PowerCenter\infa_shared\WCPIT_BIO_EDW\PrmFiles\LND\IMS_FILE_to_LND.par

cuando abro este archivo, tiene los siguientes datos

[WCPIT_BIO_EDW.WF:w_DDDMD_LNDG_IMS_NONRET_SALES]
$Cust_RowCount=72648
$Sales_RowCount=5235998
$OuletChangeLog_RowCount=931
**$DRM45_RowCount=581**
$Control_RowCount=4495
$Outl_Subcat_RowCount=105
$Fac_Subcat_RowCount=149

necesitamos actualizar 581 contra $$ DRM45_RowCount

¿Fue útil?

Solución

Suponiendo que el encabezado está todo en una sola línea (y usted ha agregado " ** " solo para enfatizar lo que desea extraer), puede extraer el número con:

export num=$(expr 0 + $(cat infile | cut -c137-148))

Esto extrae el número (asumiendo que su archivo está especificado correctamente). La expresión " 0 + n " eliminará los ceros iniciales. Luego, usando mi código de tu otra pregunta:

cat parfile | awk -va=${num} '{
    if (substr(<*>,1,17) == "$DRM45_RowCount=") {
        print "$DRM45_RowCount=" a
    } else {
        print
    }
}' > newparfile

Ahora newparfile debe contener el valor que desea.

Otros consejos

Probablemente puedas resolver esto usando scripts de Windows (no soy experto en eso), pero generalmente prefiero instalar CygWin y escribí un script de bash / awk / sed para tales operaciones. ¿Es esto aceptable para usted y su situación?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top