使用perl,我想在第一行的某个位置替换一个字符,只根据条件使用不同的值

时间:2016-02-19 05:10:48

标签: perl

我是一名perl新手,我需要一个

的命令
  1. 读入任意长度的输入文件
  2. 检查第一行的字符71(仅限)
  3. 如果该位置的值为a,则将其更改为1.如果是b,则将其更改为2,依此类推至j(10)。
  4. 将输出写入新文件

1 个答案:

答案 0 :(得分:0)

这是一个在命令行上输入perl one-liner的解决方案。在命令行中添加 -i 以编辑文件或使用> 指向新文件。使用-i或-i.old I.e. perl -i -pe ...您可以根据需要提供尽可能多的文件 - 使用$ ARGV重置第一行的位置,所有这些文件都会对第一行进行适当修改。

tcsh 55> cat test1.in
this is test line one there is a "c" at character position 71 ........c....
this is also a test line there is a "c" at character position 71 .....c....
tcsh 56> perl -pe 'BEGIN{$a="a";$h{$a++}=++$i while ($i<10)} if ($.==1){s/^(.{70})([a-j])(.*)/sprintf("%s%d%s",$1,$h{$2},$3)/e}' test.in
this is test line one there is a "c" at character position 71 ........3....
this is also a test line there is a "c" at character position 71 .....c....