【问题标题】:Append to top of file in perl在perl中附加到文件顶部
【发布时间】:2014-03-19 04:55:20
【问题描述】:

我有大约 30,000 个文件,每个文件大小为 5MB。我想在每个文件的top 上附加几行。我已经使用 bash 脚本完成了这项工作。我想学习一种使用 perl 的方法。

【问题讨论】:

标签: perl


【解决方案1】:

这是一个如何做的例子。我可能会在 fgw 中进行更多错误检查,例如重命名时的错误检查,并且我可能希望确保我可以读取和写入文件和目录。

#!/usr/bin/env perl

use strict
use File::Glob ':glob';

my @files = bsd_glob('/some/path/to/files*');

for my $file (@files)
{
    open my $in,  '<',  $file
        or die "Can't open file: $!";
    open my $out, '>', "$file.new"
        or die "Can't write new file: $!";

    while(<$in>)
    {
        print $out $_;
    }
    close $in;
    close $out;

    rename "$file.new", $file;
}

【讨论】:

  • 感谢您的回答。我想我们将不得不使用像这样的'>+'文件句柄操作。何时使用它们?任何教程都会有所帮助。
  • 据我记得,在使用 >+ 开放类型时,您必须非常小心读取和写入的字节数。如果您不小心,您将覆盖现有数据。它用于翻转位和字节,而不是用于前置数据。例如,您可以将“cat”更改为“dog”,但如果将“cat”更改为“fish”,您将开始覆盖数据。
  • perldoc.perl.org/functions/open.html:“你通常不能使用读写模式来更新文本文件,因为它们有可变长度的记录。”
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2016-06-26
  • 2011-07-26
  • 1970-01-01
相关资源
最近更新 更多