Ho un file che vorrei modificare. C'è un modo per inserire una stringa in un file con un numero di linea specifico? con NodeJSInserisci stringa al numero di riga nodejs
ho davvero grazie per avermi aiutato
Ho un file che vorrei modificare. C'è un modo per inserire una stringa in un file con un numero di linea specifico? con NodeJSInserisci stringa al numero di riga nodejs
ho davvero grazie per avermi aiutato
Finché il file di testo non è grande, si dovrebbe essere in grado di appena letto nel file di testo in un array, inserire un elemento in indice di riga specifico e quindi restituire l'array al file. Ho inserito alcuni esempi di codice qui sotto: assicurati di cambiare 'file.txt'
, "Your String"
e lo specifico lineNumber
.
di responsabilità, non ho avuto il tempo di testare il codice qui sotto ancora:
var fs = require('fs');
var data = fs.readFileSync('file.txt').toString().split("\n");
data.splice(lineNumber, 0, "Your String");
var text = data.join("\n");
fs.writeFile('file.txt', text, function (err) {
if (err) return console.log(err);
});
Funziona alla grande, grazie! – kevinkl3
Se siete su un sistema Unix allora probabilmente desidera utilizzare sed
, in questo modo per aggiungere del testo a la metà del file:
#!/bin/sh
text="Text to add"
file=data.txt
lines=`wc -l $file | awk '{print $1}'`
middle=`expr $lines/2`
# If the file has an odd number of lines this script adds the text
# after the middle line. Comment this block out to add before
if [ `expr $lines % 2` -eq 1 ]
then
middle=`expr $middle + 1`
fi
sed -e "${middle}a $text" $file
Nota: esempio di cui sopra è da here.
Con NodeJS sembra che ci siano alcuni pacchetti npm che potrebbero aiutare, come sed.js o replace.
Quanto è grande il file di testo? Puoi leggerlo in una stringa, dividerlo a capo a capo, inserire un elemento nell'array e quindi inviare l'array a un altro file? O hai problemi di memoria? –