2016-02-03 40 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

我希望它能幫助!

相關問題