允许用户修改从终端文件中提取的字符串并保存回文件

Posted

技术标签:

【中文标题】允许用户修改从终端文件中提取的字符串并保存回文件【英文标题】:Allow user to modify a string extracted from file in terminal and save back to file 【发布时间】:2020-09-09 13:14:57 【问题描述】:

我想创建一个命令行注释编辑器(在linux平台上用c编写)。

注释是一个结构,包含作者、日期、一些文本

要求很简单:

程序可以读取和打印文件中的所有笔记(最终按 id、日期、作者过滤它们) 程序将允许用户修改或创建新注释并将它们附加到文件的顶部。

我不知道如何允许更新。 重点是我想通过 id 提取例如注释,并将其放入缓冲区中。 将缓冲区写入终端并让用户修改它。 当用户完成笔记后,他可以确认并且笔记将再次保存到文件中。

我该怎么做?

我也会接受将临时注释发送给 nano 等编辑器, 但我想要的是程序只提取该注释,而不是打开所有文件。

是否有任何库可以做到这一点或低级系统输入输出接口?

【问题讨论】:

大多数想要让您编辑文本的命令行实用程序都是通过执行外部编辑器来完成的,例如 viemacs。用户的首选编辑器放在EDITOR 环境变量中。 例如,参见crontab -e 命令。 【参考方案1】:

正如@Barmar 建议的那样,我使用外部编辑器编辑文件,并使用system 系统调用启动它。我选择使用tmpfile() 函数来创建一个临时文件,用于写入或更新笔记,然后将字节流复制到原始文件中

【讨论】:

以上是关于允许用户修改从终端文件中提取的字符串并保存回文件的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS:从 JSON 中提取数据,修改对象并将其发送回同一个 JSON 文件

从PCAP文件中提取时间并另存为CSV文件

如何从 zip 中提取 csv 文件并在 python 中将其保存到磁盘? [复制]

python中如何从字符串内提取指定的字符

Mac终端修改文稿文件夹位置

从db中提取多列数据并使用spark写入文件?