行番号については、perlの組み込み変数$.
で現在行番号を得られるので、プログラム中で利用すると良いです。
以下は処理対象のテキストファイルの3行目から5行目までについて、Background
の文字列があれば、その文字列を空にするサンプルです。文字列の置換は現在行に対してs/パターン/置換文字列/
構文を使っています。
perl5
1while (<>) {
2 printf("%d: Before:\t%s", $., $_);
3 if (3 <= $. && $. <= 5) {
4 if (/Background/){
5 s/Background//g;
6 }
7 }
8 printf("%d: After:\t%s", $., $_);
9}
以下の内容のdata.txt と言うファイルがあるとして
PlainText
1--- Background at LINE1
2LINE2
3LINE3
4--- Background at LINE4
5LINE5
6LINE6
7LINE7
これをWindows10のwsl上のperl5 (5.26.1) で実行すると、以下のような実行結果となります。
sh
1$ perl -w test1.pl data.txt
21: Before: --- Background at LINE1
31: After: --- Background at LINE1
42: Before: LINE2
52: After: LINE2
63: Before: LINE3
73: After: LINE3
84: Before: --- Background at LINE4
94: After: --- at LINE4
105: Before: LINE5
115: After: LINE5
126: Before: LINE6
136: After: LINE6
147: Before: LINE7
157: After: LINE7
その他、削除も含む細かい処理はご自分で考えてみてください。ActivePerlは主にWindowsコマンドプロンプト上で実行することになると思いますが、文字コードや改行コードの違いに気を付ける以外は、コードはほぼ同じもので問題ないはずです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。