如何读取文件的指定行

如何读取文件的指定行

比如我要读取含有“ok”的一行,
或我要读取第五行到倒数第三行之间的内容
又或者我要读取以“|”分割,含有3个字段的行
这怎么写呢?


QUOTE:
原帖由 baoyu05 于 2008-11-26 12:00 发表
比如我要读取含有“ok”的一行,
或我要读取第五行到倒数第三行之间的内容
又或者我要读取以“|”分割,含有3个字段的行
这怎么写呢?

1 perl -ne 'print if /ok/'
2 perl -ne 'push @line, $_ if $. >= 5; print shift @line if @line > 3'
3 perl -ne 'print if scalar(split /\|/) == 3'


QUOTE:
原帖由 ynchnluiti 于 2008-11-26 12:25 发表

1 perl -ne 'print if /ok/'
2 perl -ne 'push @line, $_ if $. >= 5; print shift @line if @line > 3'
3 perl -ne 'print if scalar(split /\|/) == 3'

把它写到perl脚本里怎么写?
#!/usr/bin/perl
.......
....


QUOTE:
原帖由 baoyu05 于 2008-11-26 13:19 发表


把它写到perl脚本里怎么写?
#!/usr/bin/perl
.......
....

while (<>) {
   #here is 1, 2 3
}

运行: ./xx.pl filename


QUOTE:
原帖由 ynchnluiti 于 2008-11-26 13:25 发表

while () {
   #here is 1, 2 3
}

运行: ./xx.pl filename

[root@computer1 ~]# cat perl
#!/usr/bin/perl
while(<>){
perl -ne 'print if /ok/';
perl -ne 'push @line, $_ if $. >= 3; print shift @line if @line > 3';
perl -ne 'print if scalar(split /\|/) == 3';
}
[root@computer1 ~]# ./perl  file
syntax error at ./perl line 3, near "-ne"
syntax error at ./perl line 4, near "-ne"
syntax error at ./perl line 5, near "-ne"
Execution of ./perl aborted due to compilation errors.

是什么问题?
建议先看看小骆驼


QUOTE:
原帖由 hotsnow 于 2008-11-26 13:35 发表
建议先看看小骆驼

急用,来不及看了。


QUOTE:
原帖由 baoyu05 于 2008-11-26 13:32 发表


[root@computer1 ~]# cat perl
#!/usr/bin/perl
while(){
perl -ne 'print if /ok/';
perl -ne 'push @line, $_ if $. >= 3; print shift @line if @line > 3';
perl -ne 'print if scalar(split /\|/ ...

噢,我没说清楚,1,2,3只要单引号中的内容


QUOTE:
原帖由 ynchnluiti 于 2008-11-26 13:42 发表

噢,我没说清楚,1,2,3只要单引号中的内容

谢谢了。


QUOTE:
原帖由 baoyu05 于 2008-11-26 13:38 发表

急用,来不及看了。

又是一个。。。