免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4833 | 回复: 24
打印 上一主题 下一主题

@ARGV 参数如何只限定一个 请教各位 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-13 11:11 |只看该作者 |倒序浏览
如下代码,@ARGV包含txt文件,但执行这个程序,默认还是接受标准输入,非要Ctrl+D才能结束。
请问各位,如何使@ARGV包含txt文件?而不再接受标准输入?谢谢各位!

附:我的目的是 输入一个字符,删除txt文件中匹配这个字符的行。我的想法是输入这个字符后,就结束,而不用Ctrl+D.


#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=<>);
@ARGV="txt";
chomp (my $date=`date +%Y%m%d%H%M%S`);
$^I=".$date.bak";
while (<>) {
               s/^($input).*\n//;
               print;
}

[ 本帖最后由 gaochong 于 2008-11-13 11:55 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2008-11-13 11:18 |只看该作者
chomp (my $input=<>);
这句会等待ctrl+d结束

引用中内容是错误的。

[ 本帖最后由 ynchnluiti 于 2008-11-13 12:10 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-11-13 11:51 |只看该作者

回复 #2 ynchnluiti 的帖子

楼上说的不对,chomp (my $input=<>);  敲回车就结束了。

可以测试如下:

#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=<>);
print "$input";

运行结果:
[root@HS-PCTEST-CENTER-01 gaochong]# ./dd
Please input:
aa
aa
[root@HS-PCTEST-CENTER-01 gaochong]#

论坛徽章:
0
4 [报告]
发表于 2008-11-13 11:53 |只看该作者
你不接受输入不得了?

不明白你想干什么

论坛徽章:
0
5 [报告]
发表于 2008-11-13 11:57 |只看该作者

回复 #4 cobrawgl 的帖子

我要的目的很简单:
提示输入一个字符,这个字符去匹配txt文件的每一行,如果匹配上,就把这行删掉(并留个备份文件)

请问我说明白了吗?

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
6 [报告]
发表于 2008-11-13 12:06 |只看该作者
原帖由 gaochong 于 2008-11-13 11:51 发表
楼上说的不对,chomp (my $input=);  敲回车就结束了。

可以测试如下:

#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=);
print "$input";

运行结果:
[root@HS-PCTEST-CENTER ...

是说错了。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
7 [报告]
发表于 2008-11-13 12:43 |只看该作者
chomp (my $input=<>);
不需按ctrl+D结束,但标准输入已打开,while前没有关闭。
不知道是不是这么说的。

论坛徽章:
0
8 [报告]
发表于 2008-11-13 13:08 |只看该作者
while (<>) {
               s/^($input).*\n//;
               print;
               last;
}

论坛徽章:
0
9 [报告]
发表于 2008-11-13 13:11 |只看该作者
估计你是在win下运行的,date命令和linux下的结果不同的:win下接受输入……所以你就不停地输入“错误的日期”吧。
请在linux/unix运行你的脚本

论坛徽章:
0
10 [报告]
发表于 2008-11-13 13:27 |只看该作者

回复 #8 nsnake 的帖子

没有实现。。。

你运行下看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP