如何用Perl中的文件中的相同单词替换整个列

时间:2016-02-03 07:18:44

标签: perl perl-module

我是Perl的新手。我想用同一个单词替换文件中的整个列。任何人都可以帮我处理代码吗?

输入:

PPD5    31-Dec-15   Basel5  No  No      
PPD5    23-Dec-15   Bas_15  No  No      
PPD6    16-Dec-15   Bas3_15 No  No  
NPD5    16-Dec-15   Bas16   No  No  
NPD6    16-Dec-15   Bas18   No  No  
PARU    9-Jan-16    hjfhg15 No  No

输出:

PPD5    31-Dec-15   test  No  No    
PPD5    23-Dec-15   test  No  No      
PPD6    16-Dec-15   test  No  No   
NPD5    16-Dec-15   test  No  No  
NPD6    16-Dec-15   test  No  No  
PARU    9-Jan-16    test  No  No

2 个答案:

答案 0 :(得分:2)

Perl one liner:

perl -lane 'BEGIN{$"="\t"}$F[2]="test";print "@F"' input.txt

在脚本中(给脚本名称为test.pl):

use warnings;
use strict;

$" = "\t";

while (<>)
{
    my @F = split;
    $F[2] = "test";
    print "@F\n";
}

执行为:

perl test.pl input.txt

答案 1 :(得分:1)

为什么不简单地将Vim用于此目的?它只需要几个步骤就可以完成:

  1. 在Vim vi <file_name>
  2. 中打开文件
  3. 转到要替换的列的第一个字符。
  4. Ctrl+v
  5. GShift+g
  6. ,转到文件末尾
  7. 然后转到要替换的列的最后一个字符
  8. c
  9. 使用
  10. 键入要替换整列的单词
  11. Esc
  12. 键入:wq然后按Enter
  13. 保存更改

    enter image description here

    我希望它有所帮助!