- ベストアンサー
PerlのFile::Compareを使用したファイル比較がうまくいかない
Wap58の回答
- Wap58
- ベストアンサー率33% (29/87)
ファイルが同じなら0,違うなら1,エラーなら-1を返されました (Desktop):perl use File::Compare;_ print compare("Win.txt","Win.txt"),"\n"; __END__ 0 (Desktop):perl use File::Compare; print compare("Win.txt","conna.txt"),"\n"; __END__ 1 (Desktop):perl use File::Compare; print compare("Win.txt","txt"),"\n"; __END__ -1
関連するQ&A
- スクリプトでtxtファイルがブランクかを判別したい
シェルスクリプトの勉強をしています 比較先の差分のみを抽出するのに以下のコマンドを使用しており、 差分があってもなくてもdiff_file.txtを出力しています。 diff hikaku_moto.txt hikaku_saki.txt | grep -E '^<' | perl -pe 's/^<\s//g' > diff_file.txt 比較をして出力したdiffファイルがブランクであれば次の処理を流す。 ブランクでなければ処理を止めるようなことをしたいのですが、ファイルの中身がブランクかどうかの 判別方法がわからず… テキストファイルの中身がブランクかどうかの判別方法を教えていただけますでしょうか? よろしくお願い致します
- ベストアンサー
- Linux系OS
- ファイルの3行目までを出力したい
Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。
- ベストアンサー
- Perl
- ファイルの取得について
お世話になっております。 ただ今JSPにてファイルの存在チェックを行うものを作成しております。 localhost上では new File("test.txt").exists(); で”true”なのですが、 warファイルを作成後、SunOneに配備すると”false”になってしまいます。 test.txtは同じフォルダー上にあります。 String file_path = application.getRealPath("test.txt"); File test = new File(file_path); out.print(test.exists()); としても”false”になってしまいます。 どのように記述すれば”true”になるのでしょうか? お手数ですが、ご教授願います。
- ベストアンサー
- Java
- ディレクトリ構成、ファイル配置の違いを確認する方法
HPーUX11iで2つのディレクトリの サブディレクトリ構成、ファイル配置の違いを確認する方法はあるでしょうか? diffであれば、ファイルの中味まで比較してしましますし ls -lRの内容をdiffした場合、変更が有ること位しか確認できません 出来れば、何方側にサブディレクトリがふえている、ファイルが増えているを把握したいと望んでいます
- ベストアンサー
- その他(OS)
- 受け取った変数がファイルに書き込めない
Perlで質問があります。 Perlでフォームから受け取った変数の値($title = “333”)を別にCGI 投げます。Printでは問題なく変数の中身が表示されるのですが Txtに書き込もうとするとうまくいきません。 ちなみに行頭で$title = “333”;すると書き込めます。 うまく受け渡しができていないのでしょうか? 以下ソースです。 #!/usr/bin/perl -w require 'lib.pl'; #########i一応lib.plの中身######### $q = new CGI; $q->charset('EUC-JP'); print $q->header; $title = $q->param('title'); ################################## use CGI; my $fname = 'news.txt'; open(FILE, ">>$fname") or die; print FILE $title ; close(FILE);
- 締切済み
- Perl
- ファイルに書き込まれない
Googleで検索しても見つからなかったので質問させていただきます。 ファイルa.txtがあるのですが、そこに次のプログラムでデータを書き込んでも結果が反映されませんでした。 open (OUT, ">> a.txt"); print OUT "test\n"; close(OUT); Perlは初心者で、どのような問題があるのかが分かりません。 読み込みをするソースを書いてみましたが、 そちらはちゃんと動作しています。 サーバはWindowsMe+httpd+Active Perlです。 WindowsMeを使うこと自体が問題でしょうが、 その点は気にしないでほしいです。 (あくまでCGIのテスト用のサーバです) よろしくお願いします。
- ベストアンサー
- Perl
- perl ファイルが開かない
perl でファイルを開きたいのですが、なぜか開けません。何がいけないのでしょうか?エラーは、 Name "main::file" used only once: possible typo とでます。エラーを見るかぎり、コードに間違いはなく、apacheかOSに何か原因があるのではないかとおもうのですが、悩んでいます。OSはubuntuです。 #!/usr/bin/perl -w open (IN, "<test.txt") or die ("Could not open $file: $!"); while(<IN>) { print "$_"; } close (IN);
- 締切済み
- Perl
- CGIでファイルが読み込めない
CGI初心者です。 (osはlinuxです。) #!/usr/local/bin/perl use strict; use CGI; my $file=new CGI; open(DATA,"/home/data.txt"); $file=<DATA>; close=(DATA); print "Content-type: text/html\n\n"; print "data=$file"; このスクリプトで、/home/data.txt(フルパスです)に書かれているデータを1行だけをブラウザで表示させたいのですが、表示できません。 どこがおかしいのか教えてください。 ちなみにdata.txtには実際に「abc」という文字1行しか入れていません。
- 締切済み
- CGI
- シェアポイント上にあるファイルを操作するには
シェアポイントというものはよく知らないのですが シェアポイント上にあるファイルを バッチファイルでローカルにコピーしたり perlで操作したいのですが シェアポイント上にあるファイルは http://xxxx-xx.xx.~/test.htm というようにhttp://から始まるパスになっているため バッチファイルやperlからアクセスできないようなのですが シェアポイント上にあるファイル(test.htmなど)は バッチファイルやperlからどのように指定すれば よいのでしょうか。 ---test.bat-------------------------------------------------------------- copy "http://xxxx-xx.xx.~/test.htm" "c:\test\" --------------------------------------------------------------------------- では、 「'http:' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というエラーになります。 ----test.pl------------------------------------------------------------- my $file='http://xxxx-xx.xx.~/test.htm'; if (-e $file) { print "存在します"; } else { print "存在しません"; # <== 常にこちらになります } -------------------------------------------------------------------
- 締切済み
- その他(ソフトウェア)
お礼
エラーの記述までお知らせいただきありがとうございます。 -1が返ってくるとのこと、覚えておきます。 そして、大変お恥ずかしながら、参考にしていたサイトの記述が間違っていたようで、 1に変えたら無事思い通りの動作になりました。 ちゃんと本を買おうと思います。。。 ご回答ありがとうございました。