簡體   English   中英

我如何通過Perl修改文本文件

[英]how can i modify a text file by perl

我想進行“查找/更改”功能。

  1. 打開原始文件。
  2. 我想通過使用s / / /或tr / / /更改一些單詞,但是它不起作用。

     open(TXT, ">>text.txt"); my $str = <TXT>; $str =~ s/'a'/'b'/; print TXT $str; 

您的程序將打開一個文件進行添加 ,因此您將無法讀取該文件,並且my $str = <TXT>會將$str設置為undef

您可以使用以下命令將其編寫為單行控制台命令

perl -i.backup -pe"s/'a'/'b'/g" myfile

它將整個文件中的字符串'a' (包括引號)替換為字符串'b' ,並將備份保存到myfile.backup

或者您可以編寫這樣的程序

use strict;
use warnings;

open my $fh, '<', 'myfile' or die qq{Unable to open input file: $!};

while (<$fh>) {
  s/'a'/'b'/g;
  print $_;
}

這樣可以保持輸入文件完整無缺並將修改后的數據發送到STDOUT,因此可以使用以下命令將其重定向到新文件

perl modify.pl myfile > myfile.new

看這個例子:

 ...
open RH, "text.txt" or die $!;
chomp(my @lines = <RH>);
close RH;

open WH, ">text.txt" or die $!;
foreach my $line (@lines) {
  $line =~ s/'a'/'b'/;
  print WH "$line\n";
}
close WH;
 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM