【问题标题】:Insert string at line number nodejs在行号nodejs处插入字符串
【发布时间】:2015-08-26 04:22:50
【问题描述】:

我有一个想要修改的文件。有没有办法将字符串插入到特定行号的文件中? NodeJS

非常感谢你帮助我

【问题讨论】:

  • 文本文件有多大?你能把它读入一个字符串,然后用换行符分割,在数组中插入一个元素,然后将数组输出到另一个文件吗?或者你有记忆问题?

标签: javascript node.js file


【解决方案1】:

只要文本文件不是那么大,您应该能够将文本文件读入数组,将元素插入特定的行索引,然后将数组输出回文件。我在下面放了一些示例代码 - 确保更改 'file.txt'"Your String" 和特定的 lineNumber

免责声明,我还没有时间测试以下代码:

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

【讨论】:

    【解决方案2】:

    如果您使用的是 Unix 系统,那么您可能想要使用 sed,例如在文件中间添加一些文本:

    #!/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
    

    注意:以上示例来自here

    对于NodeJS,似乎有一些npm 包可能会有所帮助,例如sed.jsreplace

    【讨论】:

    • 问题具体是如何使用NodeJS实现这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多