Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - pincharata

#1
Cita de: Leo Gutiérrez. en 13 Septiembre 2013, 04:33 AM
@pincharata

A ver si te funciona esto.

Código (bash) [Seleccionar]
@echo off

for /f "tokens=*" %%_ in (file2.txt) do (
echo %%_ | findstr /r "^name" > nul 2>&1 && (
echo. >> end.txt
)
echo %%_ | findstr /r "^name" > nul 2>&1 && (
<nul set /p "=%%_ " >> end.txt
) || (
<nul set /p "=, %%_ " >> end.txt
)
)


También podrías utilizar un script en Powershell:

Código (perl) [Seleccionar]
[String]$line = "";
foreach($line in $(Get-Content "$psscriptroot\file2.txt")) {
   $line = $line.Trim().TrimEnd().TrimStart();

   if($line.StartsWith("name-label")) {
       Write-Host
   }

   if($line.StartsWith("name-label")) {
       Write-Host [${line}] -NoNewline
   } else {
       Write-Host [${line}] -NoNewline
   }
   
}


@MauriH Lo verifico esta noche y te comento qué tal.

Saludos.

Leo, muchas gracias, pero lo acabo de ejecutar y verificar con mayor detenimiento y veo que repite en la salida el resultado de la búsqueda "name", por más que intento entender y modificar el script estoy muy lejos de ello y no logro corregirlo...  lamento molestarte nuevamente a ver si podrás ayudarme.

Utilizo el script en batch por que el de powershell no me funcionó en absoluto (la salida es por pantalla y no escribe en ningún archivo, puede ser?).

La salida final que obtengo es:
Citar
name-label ( RW)       : XXXX01  , name-label ( RW)       : XXXX01  , memory-actual ( RO): 3435969740  , VCPUs-number ( RO):   
name-label ( RW)       : Control domain on host: ZZZZ01  , name-label ( RW)       : Control domain on host: ZZZZ01  , memory-actual ( RO): 78695628  , VCPUs-number ( RO):   , os-version (MRO):  in database   
name-label ( RW)       : Control domain on host: ZZZZ02 , name-label ( RW)       : Control domain on host: ZZZZ02 , memory-actual ( RO): 78695628  , VCPUs-number ( RO):   , os-version (MRO):  in database   
name-label ( RW)       : XXXX02  , name-label ( RW)       : XXXX02  , memory-actual ( RO): 6871943168  , VCPUs-number ( RO):   
name-label ( RW)       : XXXX03  , name-label ( RW)       : XXXX03  , memory-actual ( RO): 6871943577  , VCPUs-number ( RO):   
name-label ( RW)       : XXXX04  , name-label ( RW)       : XXXX04  , memory-actual ( RO): 6871943168  , VCPUs-number ( RO):   

#2
Hola a todos, quisiera saber si pueden ayudarme con un archivo de texto donde todos los dias me dejan un log de la siguiente manera (aclaro que esta cortado pero tiene miles de filas):

name-label ( RW)       : XXXX01
memory-actual ( RO): 3435969740
VCPUs-number ( RO): 
name-label ( RW)       : Control domain on host: ZZZZ01
memory-actual ( RO): 78695628
VCPUs-number ( RO): 
os-version (MRO):  in database
name-label ( RW)       : Control domain on host: ZZZZ02
memory-actual ( RO): 78695628
VCPUs-number ( RO): 
os-version (MRO):  in database
name-label ( RW)       : XXXX02
memory-actual ( RO): 6871943168
VCPUs-number ( RO): 
name-label ( RW)       : XXXX03
memory-actual ( RO): 6871943577
VCPUs-number ( RO): 
name-label ( RW)       : XXXX04
memory-actual ( RO): 6871943168
VCPUs-number ( RO): 

Lo que necesito hacer es que elimine el salto de linea y lo remplace por una coma, a excepcion de las líneas que empiezan con "name-label", tras lo cual el archivo deberia de quedar:

name-label ( RW)       : XXXX01, memory-actual ( RO): 3435969740, VCPUs-number ( RO): 
name-label ( RW)       : Control domain on host: ZZZZ01, memory-actual ( RO): 78695628, VCPUs-number ( RO): , os-version (MRO):  in database
name-label ( RW)       : Control domain on host: ZZZZ02, memory-actual ( RO): 78695628, VCPUs-number ( RO): , os-version (MRO):  in database
name-label ( RW)       : XXXX02, memory-actual ( RO): 6871943168, VCPUs-number ( RO): 
name-label ( RW)       : XXXX03, memory-actual ( RO): 6871943577, VCPUs-number ( RO):
name-label ( RW)       : XXXX04, memory-actual ( RO): 6871943168, VCPUs-number ( RO):

Gracias a un aporte de Leo Gutierrez logro quitar el salto con el codigo:

for /f "tokens=*" %%_ in (file.txt) do (<nul set /p "=%%_ "; >> listar2.txt)

Muchas gracias.