【求助】Perl 读取 TXT文件内容后进行相关操作
TableAIDPhoneSexNameBook113900maleJackroseandgun213800femaleAnnipeace313950malenaruta...
Table A
ID Phone Sex Name Book
1 13900 male Jack rose and gun
2 13800 female Anni peace
3 13950 male narutayo folower
4 25800 male babyface Light
Table B
ID Phone Sex Name Book age
1 13900 male Jack rose and gun 35
2 13800 female Jack1 peace 50
3 13950 male Jack2 flower 45
4 25800 male Jack3 Light 19
如上表,需要读表A(txt)后,查询男性的借书情况(需要在命令行上显示出来)
读表B,查询年龄介于30到50岁之间男性的结束情况,要求输出名字,电话,书名。
其实我忘了说。不能用什么功能模块之类的。 展开
ID Phone Sex Name Book
1 13900 male Jack rose and gun
2 13800 female Anni peace
3 13950 male narutayo folower
4 25800 male babyface Light
Table B
ID Phone Sex Name Book age
1 13900 male Jack rose and gun 35
2 13800 female Jack1 peace 50
3 13950 male Jack2 flower 45
4 25800 male Jack3 Light 19
如上表,需要读表A(txt)后,查询男性的借书情况(需要在命令行上显示出来)
读表B,查询年龄介于30到50岁之间男性的结束情况,要求输出名字,电话,书名。
其实我忘了说。不能用什么功能模块之类的。 展开
展开全部
根据你的说明情况,我写了以下代码,经测试完全符合你的要求:
第一个TXT,执行 perl pipei.pl table_a
#!/usr/bin/perl -w
#pipei.pl
use strict;
print "ID Phone Sex Name Book\n";
while(<>)
{
if(/.* male .*/)
{
print "$_";
}
}
第二个TXT,执行 perl pipei2.pl table_b
#!/usr/bin/perl -w
#pipei2.pl
use strict;
print "Name\tPhone\tBook\t\n";
while (<>)
{
if(/.*\s+(\d+)\s+male\s+(\S+)\s+(.*)\s+(\d+)$/)
{
print "$2\t$1\t$3\n" if($4>=30 && $4<=50)
}
}
第一个TXT,执行 perl pipei.pl table_a
#!/usr/bin/perl -w
#pipei.pl
use strict;
print "ID Phone Sex Name Book\n";
while(<>)
{
if(/.* male .*/)
{
print "$_";
}
}
第二个TXT,执行 perl pipei2.pl table_b
#!/usr/bin/perl -w
#pipei2.pl
use strict;
print "Name\tPhone\tBook\t\n";
while (<>)
{
if(/.*\s+(\d+)\s+male\s+(\S+)\s+(.*)\s+(\d+)$/)
{
print "$2\t$1\t$3\n" if($4>=30 && $4<=50)
}
}
参考资料: 原创
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你的需要,我写了以下代码,经测试发现完全符合:
第1个文件操作:
单行执行-
perl -nle 'print if /\smale/;' TableA.txt
或者执行脚本-
perl findmale.pl TableA.txt
脚本代码
-----------------
#!/usr/bin/perl
#findmale.pl
print grep /\smale/,<>;
------------------
输出:
1 13900 male Jack rose and gun
3 13950 male narutayo folower
4 25800 male babyface Light
显示出男性的借书情况:符合
第1个文件操作:
单行执行-
perl -nle 'print if /\smale/;' TableA.txt
或者执行脚本-
perl findmale.pl TableA.txt
脚本代码
-----------------
#!/usr/bin/perl
#findmale.pl
print grep /\smale/,<>;
------------------
输出:
1 13900 male Jack rose and gun
3 13950 male narutayo folower
4 25800 male babyface Light
显示出男性的借书情况:符合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询