Perlの質問です。

ローカルディレクトリにあるファイルa.txtに書かれた’HelloWWWWWWWW’を読み出し、WWWWWWを削除して別の名前でファイルを保存するにはどのようなスクリプトが必要になりますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:pmakino No.1

回答回数358ベストアンサー獲得回数30

ポイント10pt

open(FILE, ’a.txt’);

$line = <FILE>;

close(FILE);

$line =~ s/WWWWWW//;

open(FILE, ’>別の名前’);

print FILE $line;

close(FILE);

でしょうか?

id:akibare No.2

回答回数157ベストアンサー獲得回数5

ポイント25pt

http://www.harukaze.net/~mishima/perl/index.html

Perl for Newbie�iPerl���S�҂̕����j

まあ、とりあえずこれで動くようです。。。。が

最短ではないと思います。


open(INPUTFILE, ”a.txt”);

open(OUTPUTFILE, ”>b.txt”);

while($lin = <INPUTFILE>)

{

$lin =~ s/(hello)(.*$)/$1/;

print OUTPUTFILE $lin;

}

close(INPUTFILE);

close(OUTPUTFILE);

id:izunagonago

試します

ありがとうございます

2005/09/22 12:20:10
id:aki73ix No.3

回答回数5224ベストアンサー獲得回数27

ポイント25pt

サーバー側で処理するなら単純にこれだけです


#!/usr/local/bin/perl

print qq(Content-type: text/html¥n¥n);

#リモートの a.txtを

open(FILE,"a.txt");

#リモートの data/a2.txtに出力(data フォルダは書き込み許可にしておく)

open(FILE2,">data/a2.txt");

@que = <FILE>;

foreach $ax (@que){

#ココで置換します

$ax =~s/WWWWWWWW//g;

print FILE2 $ax."¥n";

}

close(FILE);

close(FILE2);

exit;

ローカルファイルの場合は、htmファイルも用意する必要があります


<HTML>

<HEAD>

<TITILE>アップロード</TITLE>

</HEAD>

<BODY>

<FORM ACTION="hatena149.cgi" ENCTYPE="multipart/form-data" METHOD="POST">

ファイル: <INPUT TYPE="file" NAME="File" SIZE="32" VALUE="a.txt"><BR>

<INPUT TYPE="submit" VALUE="送信">

</FORM>

</BODY>

</HTML>


CGIは以下のようになります


#!/usr/local/bin/perl

use CGI;

$query = new CGI;


print "Content-type: text/plain¥n¥n";


$filename = $query->param('File');

$type = $query->uploadInfo($filename)->{'Content-Type'};


# リモートにファイルを保存する場合は、コメントアウトを外します

#open(FILE2,"a2.txt");

if ($type =~ /^text¥//) {

while (<$filename>) {

$ax=$_;

$ax=~s/WWWWWWWW//g;

#ここで「WWWWWWWW」を消します

print $ax;

# リモートにファイルを保存する場合は、コメントアウトを外します

# print FILE2 $ax;

}

}

else {

print "これはテキストではありません。¥n";

}

# リモートにファイルを保存する場合は、コメントアウトを外します

# close(FILE2);

exit;

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません