2016-02-03 41 views
1

我是Perl新手。我想用同一个单词替换文件中的整个列。任何人可以帮助我的代码?如何用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

Perl的一个衬里:

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"; 
} 

EXECUTE AS:

perl test.pl input.txt 
1

你为什么不干脆用Vim为了这个目的?这需要你只有几个步骤做到这一点:

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

enter image description here

我希望它能帮助!

相关问题