dポイントプレゼントキャンペーン実施中!

MacOSX(FreeBSD)でPerlスクリプトを作っています。


ファイルに
AAA
BBB
CCC
・・
と行があったときに、任意の行のみを取り出す
スクリプトを教えて頂けますでしょうか?


また、IPアドレスのみ、ドメイン名のみ、・・
を探すコマンドはあるのですが、
・ドメイン名
・ドメインサーバのIPアドレス
・デフォルトゲートウェイ
・ネットワークポート
・MACアドレス
・自IPアドレス
・自サブネット

を一気に抜き出すコマンドはありません。
一気に抜き出すスクリプトコードを
教えて頂けませんでしょうか。


宜しくお願い致します。

A 回答 (2件)

>任意の行のみを取り出す


全行を配列に読み込んで、任意行を指定する
open FH '<file.txt';
@lines = <FH>;
close FH;
$str = $lines[12];#12行目を取り出す

システム情報は%ENVに入っています。
print '<ul>';
foreach ( keys %ENV) {
print "<li>$_: $ENV{$_}<BR></li>\n";
}
print '</ul>';

perlが動作しているOSの環境変数ではなく、ネットワーク上の他のOSなどのデータのことを云っているのなら、
個々のアドレス情報からネットワーク関連関数やモジュールで地道に探索するしかないのでは?
ん?コマンド? cgi実行中のことではなく、コマンドライン実行での話なのでしょうか?

この回答への補足

ご返答ありがとうございます。

先に全部を配列に読み込んでから、あとで
抜き出したい行を指定すれば良いのですね。
勉強になりました。

システム情報なのですが、
抜き出したい情報は、今動かしているパソコンの
システム情報になります。
ですので、
「perlが動作しているOSの環境変数」で良いと
思うのですが、
教えて頂きましたENVを使用するコードを実行すると

<ul><li>HOME: /Users/admin<BR></li>
<li>__CF_USER_TEXT_ENCODING: 0x1F5:1:14<BR></li>
<li>SECURITYSESSIONID: 790550<BR></li>
<li>SHLVL: 1<BR></li>
<li>TERM_PROGRAM: Apple_Terminal<BR></li>
<li>OLDPWD: /Users/admin/Desktop<BR></li>
<li>_: /usr/bin/perl<BR></li>
<li>TERM_PROGRAM_VERSION: 133<BR></li>
<li>PATH: /bin:/sbin:/usr/bin:/usr/sbin<BR></li>
<li>SHELL: /bin/tcsh<BR></li>
<li>TERM: xterm-color<BR></li>
<li>PWD:/Users/admin/Desktop/perl_chonpro<BR></li>
<li>USER: admin<BR></li>

となり、なんだかシステム情報を抜き出している
ようなのですが、

192.168.3.1
255.255.255.0
ppp.star-net.com
192.168.1.1
・・・

のような形では表示されないのでしょうか?

>ん?コマンド? cgi実行中のことではなく、
>コマンドライン実行での話なのでしょうか?

cgiのような高級なコードではないです。
単なるスクリプトになります。
「コマンド」と書きましたのは、
例えば、
「今動かしているパソコンのIPを調べる」には、
>ifconfig en0
と打てば、返ってきます。
また、
「参照先DNS」を知りたければ、
>less /etc/resolv.conf
と打てば表示されます。

単発でコマンドを叩けば、
ip/ subnet/ dns/ ・・・は収集出来るのですが、
それらを一発で表示させる
スクリプトを作りたいと思っています。

出来ますでしょうか?

長々とすみません。

補足日時:2006/09/26 21:50
    • good
    • 0

>>ifconfig en0


>と打てば、返ってきます。

OSのコマンドのことでしたか。
perl からはシステムコマンド実行をそれぞれ行うことになるかと思います。

// backticks or qx//
print `ifconfig en0`;
print qx|ip/ subnet/ dns/|;

http://fleur.hio.jp/perldoc/mix/pod/perlop.html#X`STRING`

参考URL:http://fleur.hio.jp/perldoc/mix/pod/perlop.html#X`STRING`
    • good
    • 0
この回答へのお礼

再度のご返答ありがとうございます。
ご記入頂きましたサイトを見ていまして、
なんとか出来そう・・? です。
コマンドをたたく以外にないんですね・・w
ありがとうございました!

お礼日時:2006/09/28 23:45

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