2015-06-10 6 views
10

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

+0

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? –

risposta

12

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); 
}); 
+0

Funziona alla grande, grazie! – kevinkl3

1

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.