如何使用文件中的数据重命名文件?

问题描述 投票:0回答:1

我知道以前有人问过这个问题,并且我已经完成了研究,我认为我的问题是我正在使用符号引用?然而,我认为这些危险并不适用于此,而且说实话,我不明白我所查找的替代方法。 我使用 glob 创建文件列表。然后我打开每个文件,找到始终为 $split_line[3] 的名称,然后我想重命名该文件“$split_line[3]-stock.txt”

我的代码是:

my @eng_stock_file = glob ('./CRM/*.txt'); 
foreach my $file (@eng_stock_file) {
    chomp $file;
    open (CRM_FILE, '<', $file) or die ("Can't open $file\n");
    while (my $line = <CRM_FILE>) {
        if ($line !~ m/^\(Do Not Modify\)/) {
            my @split_line = split("\t", $line);
            my $engineer = $split_line[3];
            #print $engineer;
            close ($file);
            last;
        }
        my $new_file = "$engineer-stock.txt";
        #print $new_file;
        move ($file, $new_file) or die "Couldn't rename the stock file.\n";
    }
}

尝试创建 $new_file 不起作用,我非常感谢您的帮助。谢谢。

perl
1个回答
0
投票
my @eng_stock_file = glob ('./CRM/*.txt'); 
foreach my $file (@eng_stock_file) {
    chomp $file;
    my $CRM_FILE;
    open ($CRM_FILE, '<', $file) or die ("Can't open $file\n");
    my $new_file;
    while (my $line = <$CRM_FILE>) {
        if ($line !~ m/^\(Do Not Modify\)/) {
            my @split_line = split("\t", $line);
            my $engineer = $split_line[3];
            #print $engineer;
            $new_file = "$engineer-stock.txt";
            last;
        }
    }
    close ($CRM_FILE);
    die "Missing new filename.\n" if !defined($new_file); 
    #print $new_file;
    rename($file, $new_file) or die "Couldn't rename the stock file: $!\n";
}
© www.soinside.com 2019 - 2024. All rights reserved.