所以我有一个包含数十万行的巨大文件。我想知道它包含多少个不同的会话或ID。我真的认为这不会那么难,但我找不到办法。
会话看起来像这样:
"session":"1425654508277"
因此会话会有几千行,然后它会切换,一定不会增加一个,我不知道模式是否存在。所以我只是想知道文档中出现了多少个会话,彼此之间有多少会话(它们应该是连续的,但这不是我要注意的要求)。
有一种简单的方法吗?只有我发现甚至远程关闭的东西都是excel宏和脚本,这让我觉得我没有问正确的问题。我也发现了这一点:Notepad++ incrementally replace但在我的情况下没有用。
提前致谢。
答案 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,因此您可以使用:
session
。 (如果这是JSON,这可能就像myJson['session']
一样简单。)myCounts[sessionValue] = doesNotMatter
。有更简单的方法,比如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选项,因为我在尝试应用其他方法时发现了这个