在行号nodejs处插入字符串

时间:2015-06-10 18:26:13

标签: javascript node.js file

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

我非常感谢你帮助我

2 个答案:

答案 0 :(得分:17)

只要文本文件不那么大,您就应该能够将文本文件读入数组,将元素插入到特定的行索引中,然后将数组输出回文件。我在下面放了一些示例代码 - 请务必更改'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);
});

答案 1 :(得分:1)

如果您使用的是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