プロが教える店舗&オフィスのセキュリティ対策術

今はperlをコマンドプロンプト上でファイルをコンパイルして実行結果を別のテキストファイルに出力しています。(printなど)

ただ、こまごまとした置換え・変換などいちいちテキストファイルにperlを書いてコンパイルして出力ファイルを開いて取り出すというやり方にわずらわしさを感じてきました。
簡単なスクリプトであれば、使い捨ての方がよく感じており、
コマンドプロンプトで試してみたのですが、長い文章やソースなどを変数にいれることができず、(改行がEnterにとられてしまう??)また、一行にずらずらとかかなくてはならないので、うまくいきません。

なにか、テキストエディタのような感じで、このようなperlスクリプトをコンパイルできるようなものはあるのでしょうか。

copalというものを使ってみたのですが、
ファイルハンドルなどが使えなかったのでだめでした。

どなたかご協力お願いします。

A 回答 (6件)

copy con tmp_0001.pl


perl tmp_myperl_0001.pl %*
del tmp_myperl_0001.pl

メモ帳等で上の3行を書いて ~.bat という名前で保存。
このファイルはパスの通っているフォルダに置く。
仮にこのファイルの名前を myperl.bat としておく。
たとえば file1.txt と file2.txtを処理したかったらコマンドラインで
myperl file1.txt file2.txt
などと打つ。
するとperlスクリプトを入力できるようになるので、好きなだけ書いたら、最後に Ctrl+Z を打って入力終了。
即座にスクリプトが実行される。

前の行を修正したりとかはできないけど、簡単なことならこれで事足りるかと。

参考URL:http://support.microsoft.com/kb/68787/ja
    • good
    • 0

質問の意味がよくわからないのですが、ワンラインのことでしょうか?


だとすれば簡単なのは

perl -pe 's/AAA/BBB/g if 5 .. 10 ' hoge.txt >> ho.txt

hoge.txt の 5行目から10行目までの AAA を BBB にして
ho.txt に書き出す
こんな感じの事を言ってるのでしょうか?

参考URL:http://www-06.ibm.com/jp/developerworks/linux/01 …
    • good
    • 0
この回答へのお礼

ありがとうございます!
参考になりました。

お礼日時:2007/04/13 18:12

質問から逸脱してるけど一応書いとくね




>perl aaa.plみたいの
コマンド上で perl という実行形式のファイルに aaa.pl を渡して動作させる の意

例として メモ帳で「index.html」を開く場合
notepad.exe index.html


>コンパイルって具体的にどういうことをさす
理解しないで使っていたみたいね
そういうときはここで調べたら良いよ
http://e-words.jp/
コンパイルするソフトをコンパイラって言って、それの対義語みたいのがインタプリタ
perlはインタプリタ
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2007/04/13 18:10

perl aaa.pl


みたいな実行の仕方はコンパイルじゃないから!

正規表現を用いた置換が使えるテキストエディタの他にもテキストの置換だけを前提にした(フォルダ内を全対象にできるような)ツールはいくつもあるよ
http://www.vector.co.jp/vpack/filearea/win/util/ …

この回答への補足

ご返事ありがとうございます。
すいません。。。
perl aaa.plみたいのはなんていうのでしょうか?

また、コンパイルって具体的にどういうことをさすのでしょうか?

補足日時:2007/04/13 00:30
    • good
    • 0

全体に, 「何をしたいのか」が読めない文章になっちゃってます.


そもそも
「今はperlをコマンドプロンプト上でファイルをコンパイルして実行結果を別のテキストファイルに出力しています。(printなど)」
というところから理解不能なんだけど.
あと, 簡単なスクリプトで
「1行にずらずら書かないといけないのでうまくいかない」
というのも, 何がどう「うまくいかない」のかがわからないんだけど.
要するに何をしたいんでしょうか?

この回答への補足

ど素人なものですいません。
今はactive perl をインストールして、windowsのコマンドプロンプトに「perl test.pl」Enter!って感じでやっています。
「perl test.pl」Enter!をコンパイルと呼ぶのだと思っていたのですが違うのですね・・・

1行にずらずら~というのは、test.plのようにファイルにperlスクリプトを書いて実行するのではなく、コマンドプロンプトに直接perlスクリプトを記述して実行させて結果を得たいということです。
コマンドプロンプトだと改行やインデントなどがつけれないので、perlを書いていてだんだんとみずらくなっていくのでそれを不便に感じています。

つまり何が言いたいかといいますと、
コマンドプロンプトのようなソフトで直接perlスクリプトを書き込んで出力結果をその場で得たいのですが、コマンドプロンプトよりいいものはないのでしょうかということです。
すいません。
おわかりいただけますでしょうか。

補足日時:2007/04/13 00:16
    • good
    • 0

置換・変換したいだけなら


テキスト限定だけど そういう機能のあるテキストエディタでやったら良いのでは?

環境が判らないので これ以上は・・・

この回答への補足

すいません。
WINDOWSXPでActivePerlをインストールしてやっています。

補足日時:2007/04/12 10:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!