gpt4 book ai didi

perl - 用于重命名文件的单行 Perl 命令

转载 作者:行者123 更新时间:2023-12-04 19:17:50 25 4
gpt4 key购买 nike

到目前为止,这个单行正在剥离一行并重命名文件,但我需要帮助来改变它,以便它剥离我正在寻找的那一行 Data for并删除旧的文件扩展名 .csv而不是添加到它。 ( .csv.out )。我不确定这是否可以用单线完成。
相反,它添加了扩展 filename.csv.out例子

 test_20110824.csv.out
单线:
find -type f -name '*.csv' -exec perl -i.out -wlne '/^Data for/ or print' {} \;
我想替换扩展名:
test_20110824.out

最佳答案

perl -MFile::Copy -we 'for (glob "*.csv") { my ($name) = /^(.+).csv/i; move($_, $name . ".out"); }'

删除匹配的标题 Data for :
perl  -MFile::Copy -MTie::File -wE 'for (glob '*x.csv') { tie my @file,
"Tie::File", $_ or die $!; shift @file if $file[0] =~ /^Data for/;
untie @file; my ($name) = /^(.*).csv/i; move($_, $name . ".out"); }'

但后来它真的不再是单线了......
use strict;
use warnings;
use Tie::File;
use File::Copy;
use autodie;

for (@ARGV) {
tie my @file, "Tie::File", $_;
shift @file if $file[0] =~ /^Data for/;
untie @file;
my ($name) = /^(.*).csv/i;
move($_, $name . ".out");
}

并与:
$ script.pl *.csv

关于perl - 用于重命名文件的单行 Perl 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com