elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Re: Acciones sobre archivos de texto. [Batch] en: 13 Septiembre 2013, 14:50 pm
@pincharata

A ver si te funciona esto.

Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in (file2.txt) do (
  4. echo %%_ | findstr /r "^name" > nul 2>&1 && (
  5. echo. >> end.txt
  6. )
  7. echo %%_ | findstr /r "^name" > nul 2>&1 && (
  8. <nul set /p "=%%_ " >> end.txt
  9. ) || (
  10. <nul set /p "=, %%_ " >> end.txt
  11. )
  12. )
  13.  

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

Código
  1. [String]$line = "";
  2. foreach($line in $(Get-Content "$psscriptroot\file2.txt")) {
  3.    $line = $line.Trim().TrimEnd().TrimStart();
  4.  
  5.    if($line.StartsWith("name-label")) {
  6.        Write-Host
  7.    }
  8.  
  9.    if($line.StartsWith("name-label")) {
  10.        Write-Host [${line}] -NoNewline
  11.    } else {
  12.        Write-Host [${line}] -NoNewline
  13.    }
  14.  
  15. }

@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  Programación / Scripting / Re: Acciones sobre archivos de texto. [Batch] en: 12 Septiembre 2013, 21:18 pm
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:

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

Muchas gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines