Software para borrar líneas en un archivo de texto

Estoy buscando un software de Windows que pueda eliminar líneas en archivos de texto después de una línea específica.

Por ejemplo, un archivo contiene 5 líneas. Quiero eliminar líneas después de la tercera línea. ver:

Line 1
Line 2
Line 3
xxxxxx
xxxxxx1

Aquí, quiero mantener las primeras 3 líneas (línea 1, línea 2, línea 3) y eliminar las 2 líneas restantes (xxxxxx, xxxxxx1) y guardar automáticamente ese archivo de texto. Quiero hacer esto con varios archivos de texto. Quiere eliminar cada línea después de la tercera línea en cada archivo de texto dentro de una carpeta.

¿Algún software de Windows para esto?

Tenga en cuenta que pedir que el software haga X está dentro del tema en este sitio, pero preguntar cómo hacer algo con el software (¿Puedo hacer esto con Notepad++) está fuera del tema; debe dirigir esa pregunta específica a SuperUser.
Esa no era mi única pregunta. Pedí un software y si Notepad ++ puede hacer esto y alguien sabe cómo hacerlo, no creo que eso cree ningún problema para nadie.

Respuestas (3)

GnuWin es capaz de hacerlo, por ejemplo sed. En la línea de comando, escriba

for %f in ("*.txt") do C:\...\sed -i "1,3!d" "%f"

El forcomando es parte de la línea de comandos de Windows. %fdefine una variable para contener el nombre del archivo. in ("*.txt")define qué archivos procesar. do C:\...\sedle dice a Windows que ejecute un comando.

-irealizará la operación en el lugar, es decir, escribirá en el mismo archivo. 1,3define un rango de líneas, !elige todas las demás líneas, dlas elimina y "%f"pasa el archivo a procesar a SED, para que sepa qué archivo procesar.

GnuWin se ejecuta en Windows y es gratuito.

Considere usar -i.bakwhich creará una copia de seguridad de todos los archivos antes de cambiarlos (con la extensión .bak).

Esto se puede hacer sin instalar software, sino creando un simple script por lotes. Aquí hay un script que hará lo que quieras:

@echo off > NEWFILE & setLocal enableDELAYedeXpansioN
set/p D=delete all after what line?
set N=
:main
for /f "tokens=* delims= " %%a in (file.txt) do (
set/a N+=1
if !N! leq !D! echo.%%a
) >> NEWFILE

¿Dónde file.txtestá el archivo real? Cuando ejecute este script, le preguntará qué línea eliminar después, simplemente diga 3. Copie el código anterior y péguelo en un .batarchivo.

Hay muchas maneras de hacer esto utilizando las herramientas básicas de Unix/Linux.

Recomiendo usar awk en tu caso. Para ejecutar awk en Windows, puede usar un puerto de Windows de awk .

Mi experiencia personal es que vale la pena aprender rápidamente si tiene que procesar texto de vez en cuando.