从文件中读取并查找特定行

2023-11-30

我需要根据某些关键字获取设置文件中的信息(我无法更改格式)。该文件是这样的:

username=myusername
address=156a1355e3486f4
data=function(i){if (i!=0) return true; else return false;}

该系统是<key> = <value> \n。可以有=、值部分中的空格或其他字符,但绝不能换行。键是唯一的(在“关键部分”,它们可以出现在值中,但是\nkey=每个键在文件中仅出现一次)。

通过 shell 脚本,我发现我的值是这样的:

username=`grep ^username file.txt | sed "s/^username=//"`

grep 将返回username=someusernamesed 替换密钥并=什么都没有,只留下价值。

在node.js中,我想访问some文件中的数据。例如,我想要地址和数据的值。

我怎样才能在node.js 中做到这一点?后fs.readFile(file.txt)我不知道该怎么办。我想我必须使用split,但是使用\n似乎不是最好的选择,也许正则表达式可以提供帮助?

理想的情况是“找到一个以\nkey=并以第一个结尾\n”,然后我可以轻松地拆分以找到该值。


// @text is the text read from the file.
// @key is the key to find its value
function getValueByKey(text, key){
    var regex = new RegExp("^" + key + "=(.*)$", "m");
    var match = regex.exec(text);
    if(match)
        return match[1];
    else
        return null;
}

EXAMPLE:

// text should be obtained using fs.readFile...
var text = "username=myusername\naddress=156a1355e3486f4\ndata=function(i){if (i!=0) return true; else return false;}";


function getValueByKey(text, key){
    var regex = new RegExp("^" + key + "=(.*)$", "m");
    var match = regex.exec(text);
    if(match)
        return match[1];
    else
        return null;
}

console.log("adress: ", getValueByKey(text, "address"));
console.log("username: ", getValueByKey(text, "username"));
console.log("foo (non exist): ", getValueByKey(text, "foo"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文件中读取并查找特定行 的相关文章

随机推荐

  • 更新 github 上的分叉存储库

    我从 github 分叉了一个存储库 它称为 bootstrap 我已经克隆了我的叉子 git clone https github com Fowowski bootstrap git bootstrap 项目有一个 master 分支和
  • ‘$’不被识别为内部或外部命令..”

    我已经安装了 Node 并重新启动了计算机 将 C Program Files nodejs 添加到我的路径中 但是当我在命令提示符中运行 node version 来检查版本时 它返回 未被识别为内部或外部命令 可操作程序或批处理文件 你
  • SQL Server 中的 DECIMAL 和 NUMERIC 有什么区别吗?

    SQL Server 中的 DECIMAL 和 NUMERIC 数据类型有什么区别吗 什么时候应该使用 DECIMAL 什么时候应该使用 NUMERIC 他们是一样的 数字在功能上等同于十进制 MSDN 小数和数字
  • 使用 Moment.js 进行区域设置检测

    我在项目中使用 Moment js 并格式化日期 如下所示 var date moment unix 1318781876 return date format LLLL 目前文档声明支持多个区域设置 我想知道 moment js 是否会自
  • JavaFX 2:在 TableCell 中保存编辑

    在我的 JavaFX 程序中 我使用 TableCell 您可以在其中编辑值 就像 JavaFX 页面上的示例所示 例子 我使用这个函数来保存更改 函数在编辑单元格的 TextField 上设置 textField setOnKeyRele
  • 如何向socket通道写入数据

    是否有任何小型工作程序可以使用 java nio 从客户端接收数据并向客户端发送数据 实际上我无法写入套接字通道 但我能够读取传入的数据 如何向socket通道写入数据 谢谢 迪帕克 您可以将数据写入套接字通道 如下所示 import ja
  • 固定位置的div

    我有一个样式为position fixed 的div 我希望它向下滚动页面 但我不希望div 溢出到页脚中 我怎样才能做到这一点 提前致谢 肖恩 尝试这个 CSS body html height 100 margin 0 padding
  • jQuery 事件按键:按下了哪个键? A-Z,&@

    在 keydown 上我从 jQuery 得到以下信息 jQuery Event altKey false attrChange undefined attrName undefined bubbles true button undefi
  • Win 7 和 Win 8 中最大化时的无边界应用程序隐藏在任务栏后面

    我在 WPF 中创建了一个无边框窗口 我编写了一个事件来最大化窗口 但在最大化时 窗口的一部分有时隐藏在任务栏后面 片刻后出现在任务栏顶部 如何确保窗口每次都保持在任务栏的顶部 以下是我实施的方法 private void OnMaximi
  • Python WindowsError: [Error 3] 尝试重命名时系统找不到指定的文件

    我不明白出了什么问题 我以前使用过重命名没有任何问题 并且在其他类似问题中找不到解决方案 import os import random directory C whatever string alphabet abcdefghijklmn
  • 使用会话存储变量

    我有一个在每次换页时都会更新的变量 但我想以某种方式将值存储在第一次调用中 变量是例如 sizeOfSearch value HotelList activePropertyCount 第一次加载页面时 它是 933 在下一页上检索到相同的
  • Dataproc:配置 Spark 驱动程序和执行程序 log4j 属性

    正如前面的答案中所解释的 更改 Spark 集群的详细程度的理想方法是更改对应的log4j properties 但是 在dataproc上 Spark在Yarn上运行 因此我们必须调整全局配置而不是 usr lib spark conf
  • $.param() 生成的查询字符串包含数组的方括号

    我有一个这样的对象 var queryObject name Shwetanka subjects Mathematics Physics Computers stream science 当我使用此创建查询字符串时 param query
  • Spark 从不同模式目录读取数据帧

    我的spark程序必须从一个目录中读取 该目录有不同模式的数据 目录 子目录1 文件1 10 外星人1 11 鲍勃 目录 子目录2 文件2 蓝色 123 芝加哥2 红色 34 达拉斯 大约 50 个具有不同模式的目录 我的 Spark 作业
  • Django 上传图像 - 从表单到 Rackspace/S3,无需任何操作

    我只想使用表单上传图像 JPG 然后将该图像发送到 Rackspace Cloud Files 或 Amazon S3 没有操作该文件 无需保存到磁盘 一切都保存到内存 托管在云服务器上 图片大小不会超过75kb Update 两个注意事项
  • 将变量值传递给锚标记中的 href 参数

    如何将变量值传递给锚标记中的 href 参数 a something here a 我希望锚标记在执行上述代码后看起来像这样 a href http www google com jobid 10 something here a 但不知何
  • 查找并替换对象数组中的部分属性值

    我需要在对象数组中搜索关键字并替换它的所有实例 例如 我有以下数组 const test marketType 90 displayName FT Total Match scoreType Over Under 0 75 Remove m
  • 在WPF中检测鼠标直接越过边框

    我有一个简单的 UserControl 其直接子元素是边框
  • 计算字符串中特定的相同字符的连续出现次数 - PHP

    我正在尝试计算一些 连胜 特别是连续获胜和失败的最高次数 以及大多数没有获胜的比赛 没有失败的比赛的发生次数 我有一个看起来像这样的字符串 WWWDDWWWWLLWLLLL 为此我需要能够返回 A 字符的最长连续运行 然后我将复制 L 没有
  • 从文件中读取并查找特定行

    我需要根据某些关键字获取设置文件中的信息 我无法更改格式 该文件是这样的 username myusername address 156a1355e3486f4 data function i if i 0 return true else