Insert string at line number nodejs

前端 未结 2 1122
清歌不尽
清歌不尽 2020-12-31 07:14

I have a file that I would like to modify. Is there a way to insert a string to a file at a specific line number? with NodeJS

I really thank you for helping me out<

相关标签:
2条回答
  • 2020-12-31 07:46

    If you are on a Unix system then you probably want to use sed, like so to add some text to the middle of the 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
    

    Note: above example is from here.

    With NodeJS it appears that there are some npm packages that might help, like sed.js, or replace.

    0 讨论(0)
  • 2020-12-31 07:54

    As long as the text file isn't that large, you should be able to just read in the text file into an array, insert an element into the specific line index, and then output the array back to the file. I've put some sample code below - make sure you change 'file.txt', "Your String" and the specific lineNumber.

    Disclaimer, I haven't had time to test the below code yet:

    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 讨论(0)
提交回复
热议问题