如何删除文本文件中的一行?(急!马上要交作业了)

如何删除文本文件中的一行?(急!马上要交作业了)

如何删除文本文件中的一行?(急!马上要交作业了)
没办法,因为马上要交作业了,但这个程序还有些没写完,所以只有请教大家,如何删除文本文件中的一整行?

比方说有这样一个文件像这样:
abcdef
ghij
klmnopqrs
tuv
wx
yz

如果我要整个删掉第四行,就是tuv那一行,包括后面的“\n”,应该怎么办?

不要怪我无知,主要是现在时间太紧了点。
这里可以问作业...
这里可以问作业吗?!

我是个新手,觉得可以这样:
[code]
#!/usr/bin/perl -w
open(SH,"old")||die "$!\n";
open(DH,">new")||die "$!\n";
@contents=<SH>;
foreach(@contents){
s/tuv\n//;
}
print DH @contents;
close(SH);
close(DH);
[/code]

是不是有其它简单方法,或命令行的方法,
不知道。
还没看到命令行操作。[CCB]1[/CCB]




   

这个[code]标记...
这个[code]标记怎么不管用?
用seek函数...
grep -v
<code>
cat abc.file | grep -v tuv > def.file
</code>




   

linux 下运行 linux 下运行

>perl -i -pe 's/tuv\n//' tmp

tmp 是你要替换的文件。运行完后包含 tuv 的所有行被删除。

Perl命令行应用介绍
http://wiki.perlchina.org/main/show/Perl%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%BA%94%E7%94%A8%E4%BB%8B%E7%BB%8D

如果使用我们的答案的话,大概可以在你的作业里提一下 perlchina :)
[color=red]作业要求是用Perl写么? shell很简单写的说~[/color]
我是想学习 Per...
我是想学习 Perl,所以就想用 Perl 做个小的项目。当然用 Shell 会很简单。
觉得这样写更符合我的需要:
open(SH,"<D:\\abcde.txt")||die "$!\n";
@contents=<SH>;
$counter=0;
foreach(@contents){
$counter++;
if($_ eq "tuv\n")
{
splice(@contents,$counter-1,1);
}
}
close SH;
open(SH,">D:\\abcde.txt")||die "$!\n";
print SH @contents;
close(SH);

因为我要写的程序还需要连续删除几条,所以这样写更符合要求。
splice以后,$c...
splice以后,$counter记数器还对吗?