如何计算文件中的ID数量

时间:2016-05-10 07:47:41

标签: json regex notepad++

所以我有一个包含数十万行的巨大文件。我想知道它包含多少个不同的会话或ID。我真的认为这不会那么难,但我找不到办法。

会话看起来像这样:

"session":"1425654508277"

因此会话会有几千行,然后它会切换,一定不会增加一个,我不知道模式是否存在。所以我只是想知道文档中出现了多少个会话,彼此之间有多少会话(它们应该是连续的,但这不是我要注意的要求)。

有一种简单的方法吗?只有我发现甚至远程关闭的东西都是excel宏和脚本,这让我觉得我没有问正确的问题。我也发现了这一点:Notepad++ incrementally replace但在我的情况下没有用。

提前致谢。

4 个答案:

答案 0 :(得分:1)

考虑使用jq。您可以使用DECLARE @NVC_Query nvarchar(max) = '' SET @NVC_Query = 'UPDATE Tour_Table SET' select @NVC_Query += ' ' + columns.name + ' = NULL ,' from sys.tables INNER JOIN sys.columns ON tables.object_id = columns.object_id WHERE tables.name = 'Your table' AND columns.name <> 'The only col you want to update' SET @NVC_Query += ' your colum = your_val WHERE Yourcondition' --SELECT @NVC_Query EXEC SP_EXECUTESQL @NVC_Query 提取会话,然后应用[.session],然后应用unique

https://stedolan.github.io/jq/manual/

我不是jq专家,并没有测试过这个,但似乎是程序

length

可能会给你你想要的东西。

答案 1 :(得分:1)

根据您的个人资料,您了解JavaScript,因此您可以使用:

  1. 加载文件。
  2. 寻找session。 (如果这是JSON,这可能就像myJson['session']一样简单。)
  3. 键入会话值,添加到地图,例如myCounts[sessionValue] = doesNotMatter
  4. 计算地图中的键数。
  5. 有更简单的方法,比如torazaburo使用cat data | uniq | wc的建议,但听起来并不像你想要学习Unix,所以你也可以练习你的JavaScript(我这样做)我自己学习编程语言时:将它用于所有事情。)

答案 2 :(得分:1)

您将无法使用notepad++实现此目的,但您可以使用linux命令shell命令,即:

cat sessions.txt | uniq | wc

答案 3 :(得分:0)

添加到我自己的问题,如果你设法得到你想要的字符串在Excel中用列分隔,Excel有一个选项Filter,它会自动为你提供不同的值来过滤列。

这意味着,应用于我的情况,如果我得到键值(“session”:“idSession”,每行连续100000个值),所有这些都在一列中,过滤,手动计数,我得到不同值的数量。

没有尝试wc / unix选项,因为我在尝试应用其他方法时发现了这个