我是Perl的新手。我需要解析一个制表符分隔的文本文件。例如:如何解析制表符分隔的数据文件并将提取的数据分组到Perl中?
From name To name Timestamp Interaction
a b Dec 2 06:40:23 IST 2000 comment
c d Dec 1 10:40:23 IST 2001 like
e a Dec 1 16:03:01 IST 2000 follow
b c Dec 2 07:50:29 IST 2002 share
a c Dec 2 08:50:29 IST 2001 comment
c a Dec 11 12:40:23 IST 2008 like
e c Dec 2 07:50:29 IST 2000 like
c b Dec 11 12:40:23 IST 2008 follow
b a Dec 2 08:50:29 IST 2001 share
解析后我需要基于用户交互创建组。在这个例子中
a<->b
b<->a
c<->a
a<->c
b<->c
c<->b
为此我们可以创建一个组。我们需要显示组列表。 我需要一些关于如何解析文件和表单组的指针?
编辑 约束 - >创建组需要至少3个用户。 交互只是一些沟通是在两个用户之间完成的。不要紧,其中通信
我的解决办法是
我们删除重复的用户之间的互动。如果“a <> b like”再次如果“a <> b follow”存在,则我们移除该行。
创建2维阵列,其存储相互作用两个用户,即
To Name a b c d
From Name
a X <> <> X b <> X <> X c <> <> X X d X <> X X
X =代表没有相互作用 <> =表示相互作用
在这种方法w e从第一行开始,即“a”用户用“b”检查。如果“a”与“b”相互作用,那么我们执行反向,即“b”与“a”相互作用。每列执行相同的步骤。
但是这种方法取决于用户数量。如果有1000个用户存在,那么我们必须创建1000 X 1000矩阵。是否有任何的替代解决这个
我已经加入样品输入
a c Dec 2 06:40:23 IST 2000 comment
f g Dec 2 06:40:23 IST 2009 like
c a Dec 2 06:40:23 IST 2009 like
g h Dec 2 06:40:23 IST 2008 like
a d Dec 2 06:40:23 IST 2008 like
r t Dec 2 06:40:23 IST 2007 share
d a Dec 2 06:40:23 IST 2007 share
t u Dec 2 06:40:23 IST 2006 follow
a e Dec 2 06:40:23 IST 2006 follow
k l Dec 2 06:40:23 IST 2009 like
e a Dec 2 06:40:23 IST 2009 like
j k Dec 2 06:40:23 IST 2003 like
c d Dec 2 06:40:23 IST 2003 like
l j Dec 2 06:40:23 IST 2002 like
d c Dec 2 06:40:23 IST 2002 like
m n Dec 2 06:40:23 IST 2005 like
c e Dec 2 06:40:23 IST 2005 like
m l Dec 2 06:40:23 IST 2011 like
e c Dec 2 06:40:23 IST 2011 like
h j Dec 2 06:40:23 IST 2010 like
d e Dec 2 06:40:23 IST 2010 like
o p Dec 2 06:40:23 IST 2009 like
e d Dec 2 06:40:23 IST 2009 like
p q Dec 2 06:40:23 IST 2000 comment
q p Dec 2 06:40:23 IST 2009 like
a p Dec 2 06:40:23 IST 2008 like
p a Dec 2 06:40:23 IST 2007 share
l p Dec 2 06:40:23 IST 2003 like
j l Dec 2 06:40:23 IST 2002 like
t r Dec 2 06:40:23 IST 2000 comment
r h Dec 2 06:40:23 IST 2009 like
j f Dec 2 06:40:23 IST 2008 like
g d Dec 2 06:40:23 IST 2007 share
w q Dec 2 06:40:23 IST 2003 like
o y Dec 2 06:40:23 IST 2002 like
x y Dec 2 06:40:23 IST 2000 comment
y x Dec 2 06:40:23 IST 2009 like
x z Dec 2 06:40:23 IST 2008 like
z x Dec 2 06:40:23 IST 2007 share
y z Dec 2 06:40:23 IST 2003 like
z y Dec 2 06:40:23 IST 2002 like
输出应为:
(a,c, d, e)
(x,y,z)
有至少三个不同的问题存在(读取该文件,从它提取数据,结构化数据)。哪一个给你带来问题? – Quentin
你有什么尝试?它是如何不如预期的那样工作的?你卡在哪里? – sarnold
@Quentin:感谢您的快速回复。我被困在构建数据。 – Raje