我想在data.txt文件的顶部添加一个文本,此代码在文件末尾添加文本.我如何修改此代码以在data.txt文件的顶部写入文本.提前感谢任何帮助.
open (MYFILE, '>>data.txt');
print MYFILE "Title\n";
close (MYFILE)
Run Code Online (Sandbox Code Playgroud)
perl -pi -e 'print "Title\n" if $. == 1' data.text
Run Code Online (Sandbox Code Playgroud)
您的语法略有弃用(谢谢,Seth):
open(MYFILE, '>>', "data.txt") or die $!;
Run Code Online (Sandbox Code Playgroud)
您必须完整传递文件并在现有文件内容之前写出所需的数据:
open my $in, '<', $file or die "Can't read old file: $!";
open my $out, '>', "$file.new" or die "Can't write new file: $!";
print $out "# Add this line to the top\n"; # <--- HERE'S THE MAGIC
while( <$in> ) {
print $out $_;
}
close $out;
close $in;
unlink($file);
rename("$file.new", $file);
Run Code Online (Sandbox Code Playgroud)
(无意中从Perl FAQ中窃取,然后修改)
这将逐行处理文件,以便在大文件上不会占用大量内存.但是,它并不是很快.
希望有所帮助.
有一个更简单的单行程序可以为每个文件添加一个文本块.比方说,你有一组命名的文件body1,body2,body3等,对要在前面加上包含在一个名为文本块标题:
cat header | perl -0 -i -pe 'BEGIN {$h = <STDIN>}; print $h' body*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15801 次 |
| 最近记录: |