Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

375
Vistas
Eliminar una línea en un archivo txt con Node.js

Recientemente hice un script en el que quiero eliminar una coincidencia EXACTA de un archivo txt con node. Imprime verdadero pero en realidad no elimina la línea del archivo txt. Estoy usando discord para obtener el argumento. No estoy seguro de lo que estoy haciendo mal, pero aquí está mi script:

 const fs = require('fs') fs.readFile('notredeemed.txt', function (err, data) { if (err) throw err; if (data.toString().match(new RegExp(`^${args[0]}$`, "m"))) { fs.readFile('notredeemed.txt', 'utf8', function (err,data) { if (err) { return console.log(err); } var result = data.replace(/${args[0]/g, ''); fs.writeFile('notredeemed.txt', result, 'utf8', function (err) { if (err) return console.log(err); }); }); console.log("true")

Si alguien pudiera ayudarme se lo agradecería :)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que puede hacerlo de manera muy similar a su solución actual, solo que la expresión regular está un poco apagada.

En lugar de solo usar ^ y $ para indicar que toda la cadena comienza y termina con args[0] , usé dos grupos de captura como delimitadores de una línea.

Este coincide con cualquier carácter de nueva línea o el comienzo de la cadena. Funciona para la primera línea del archivo y evita el reemplazo parcial, por ejemplo, llo reemplaza Hello :

 (\n|^)

Y este coincide con un retorno de carro o el final de la cadena. Esto funciona para los casos en los que no hay una nueva línea al final del archivo y también evita que Hel reemplace a Hello :

 (\r|$)

Eso debería garantizar que siempre esté eliminando una línea completa que coincida con sus argumentos.

También eliminé el segundo readFile ya que no era necesario para que funcionara.

 const fs = require("fs") fs.readFile("notredeemed.txt", function (err, data) { if (err) throw err const match = new RegExp(`(\n|^)${args[0]}(\r|$)`) const newFile = data.toString().replace(match, ``) fs.writeFile("notredeemed.txt", newFile, "utf8", function (err) { if (err) return console.log(err) console.log("true") }) })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí está mi solución.

Algoritmo:

  1. Divida el contenido del archivo en líneas individuales con el indicador de fin de línea deseado (generalmente "\n" o "\r\n" )
  2. Filtra todas las líneas que quieras eliminar
  3. Vuelva a unir todas las líneas filtradas con la bandera EOL

 const replacingLine = "- C/C++ addons with Node-API"; const fileContent = `- V8 - WASI - C++ addons - C/C++ addons with Node-API - C++ embedder API - C/C++ addons with Node-API - Corepack`; const newFileContent = replace({ fileContent, replacingLine }); console.log(newFileContent); function replace({ fileContent, replacingLine, endOfLineFlag = "\n" }) { return fileContent .split(endOfLineFlag) .filter((line) => line !== replacingLine) .join(endOfLineFlag); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda