我的x文件有文件名(a.txt,b.txt,c.txt .... j.txt)和y文件有(1,2,3,4,....) 。我想用a.txt = 1,b.txt = 2,c.txt = 3 ......中的相应数字替换一个常数(与每个文件相同)。 我试过以下代码
open my $handle, '<', "y";
@words = <$handle>;
close($handle);
open(my $fh,"x") or die "Couldn't open file file.txt, $!";
while ( $count = <$fh>) {
print @words ;
print $count;
system(" sed -i 's/129/$words[$i]/g' '$count' ") ;
$i++;
}
close ($fh);
这不是替换文件中的任何内容。 编辑:a.txt是文件名的样子 嘿,我是人类。 129 嘿im human是所有b.txt,c.txt的共同点直到j.txt.和129是常数我想用1,2,3 ...替换它在相应的文件中(在a.txt 1中应该是在那里,在b.txt 2应该在那里。) 请分享您的疑虑。 提前致谢
答案 0 :(得分:0)
你真正想要实现的目标并不是很清楚。但是这里有三个提示可能会让您更容易找到问题。
use strict
和use warnings
添加到您的代码中。并解决他们会告诉你的问题。chomp()
删除它们。sed
是一个奇怪的选择。 sed
无法使用Perl轻松做任何事情。