想要替换许多文件中的数字

时间:2018-03-08 13:22:33

标签: bash shell perl csh

我的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应该在那里。) 请分享您的疑虑。 提前致谢

1 个答案:

答案 0 :(得分:0)

你真正想要实现的目标并不是很清楚。但是这里有三个提示可能会让您更容易找到问题。

  1. 始终将use strictuse warnings添加到您的代码中。并解决他们会告诉你的问题。
  2. 从文件中读取数据时,每条记录的末尾仍会有换行符。使用chomp()删除它们。
  3. 从Perl程序中调用sed是一个奇怪的选择。 sed无法使用Perl轻松做任何事情。