当用 cmd 输出日志的时候,列如“>> "log11.txt",仅凭 cmd 自身的功能,能不能判断已输出的内容,和控制台的内容不重复,就是说,如果 txt 里某行内容是“hello world”,如果控制台里又出现了“hello world”,则不再追加写入到 txt 里。
注意!是整行内容相匹配就不追加写入,而不是出现“hello world”就整行不不写入
注意!是整行内容相匹配就不追加写入,而不是出现“hello world”就整行不不写入

1 seawing Feb 10, 2023 输出什么,怎么输出不都是 cmd 自身代码逻辑控制的吗?怎么改都行吧 |
2 AoEiuV020CN Feb 10, 2023 不能,你必须找个方法把所有出现过的行或者特征摘要给缓存起来,再判断, |
3 smallparking Feb 10, 2023 via Android 使用 cmd 命令行终端本身并不能实现这个功能。如果想要实现这样的需求,可以使用其他编程语言,例如 Python 或 C++,编写代码来实现。 代码实现步骤: 读取日志文件内容 将读取到的内容存储到一个容器(例如 list )中 每次从控制台读取一行内容 在容器中查找是否存在这一行内容 如果容器中不存在这一行内容,则将其写入日志文件 这样就可以实现日志不重复的效果。 by chatgpt |
4 thinkershare Feb 10, 2023 你自己想想就知道了,当然是不行,否则>> 输出变成了一个 O(n)的写入操作,首先需要读取已经存在的所有行,然后从头匹配一次,然后确定是否追加. 正确姿势肯定是应该在程序里面自己缓存,然后检测是否需要使用>>追加到文件。 |
5 aijam Feb 10, 2023 换个思路,你把带重复的 log11.txt 丢 uniq 里不行吗? |
6 julyclyde Feb 10, 2023 如果你的程序能够特地去分 stdout 和 terminal 的话(不过我看你的问法,你不像是了解这俩区别的口气)只能自己想办法做“去重复”了 如果你的程序根本不知道什么叫 terminal ,而仅仅是给 stdout 输出,那根本不会重复 |
7 1054850490 OP @smallparking 3# AI 大法好 |
8 1054850490 OP @aijam 我本身的代码知识不够,所以很多的逻辑完全不懂 |