C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: perlでlinuxコマンドの結果を配列に格納するには


(過去ログ 33 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■16361 / inTopicNo.1)  perlでlinuxコマンドの結果を配列に格納するには
  
□投稿者/ じゃかるた (90回)-(2008/04/03(Thu) 16:06:23)

分類:[その他の言語] 

言語:perl version5.8.8
OS:CentOS 5(Linux)

以下perlのsystem関数でLinuxコマンドを発行しています。


$cmd = 'ps -e pid,start,args,stat';
system $cmd


system $cmdの出力結果を各項目(pid,start,args,stat)ごとに配列(二次元?)に格納するとういうようなことは可能でしょうか?
もし可能であれば教えていただけないでしょうか。
引用返信 編集キー/
■16376 / inTopicNo.2)  Re[1]: perlでlinuxコマンドの結果を配列に格納するには
□投稿者/ Azulean (55回)-(2008/04/03(Thu) 23:17:07)
> system $cmdの出力結果を各項目(pid,start,args,stat)ごとに配列(二次元?)に格納するとういうようなことは可能でしょうか?
> もし可能であれば教えていただけないでしょうか。
psの出力書式を覚えていないのですが、splitで区切ればなんとでもなるんじゃないですか?
(各行を正規表現にかけて、マッチした箇所を取り出すのも手)
あとは、連想配列なり、なんなりと。
最近Perlで書いてないので間違ってるかもしれませんし、覚えていない部分もあるので細かいところはフォローできません。


# あくまでイメージ

# 行ごとに分割する
@lines = split(/\n/, $output);
foreach $line(@lines)
{
# 書式が違う行はスキップするコードを入れておく

# 区切る
@columns = split(/\s+/, $line);

# 何番目が〜〜だから特定の変数に入れる
}


引用返信 編集キー/
■16403 / inTopicNo.3)  Re[2]: perlでlinuxコマンドの結果を配列に格納するには
□投稿者/ じゃかるた (91回)-(2008/04/04(Fri) 13:39:10)
No16376 (Azulean さん) に返信
> psの出力書式を覚えていないのですが、splitで区切ればなんとでもなるんじゃないですか?
> (各行を正規表現にかけて、マッチした箇所を取り出すのも手)
> あとは、連想配列なり、なんなりと。
> 最近Perlで書いてないので間違ってるかもしれませんし、覚えていない部分もあるので細かいところはフォローできません。
>
>
> # あくまでイメージ
>
> # 行ごとに分割する
> @lines = split(/\n/, $output);
> foreach $line(@lines)
> {
> # 書式が違う行はスキップするコードを入れておく
>
> # 区切る
> @columns = split(/\s+/, $line);
>
> # 何番目が〜〜だから特定の変数に入れる
> }

コードまで書いていただきありがとうございます。
行はsplit関数でできました。

あとは固定長出力になっていたのでsubstr関数でほしいデータ形式にすることができました。

ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -