2016-05-12 6 views
0
qa1 /apps/dir1 qavm01,qavm02,qavm03 
qa2 /apps/dir2 qavm01,qavm02,qavm03 
qa3 /apps/dir3 qavm01,qavm02,qavm03 
cpz /apps/cpz1 ctg201,ctg202 

私は上記のファイルを持っています。ファイル内の文字列を検索し、perlの行で操作します

  1. 一致する行を見つけたいqa1。これは、ユーザーが入力した内容に応じて毎回変更されます。私は値を提供するためのHTMLフロントエンドを持っています。 CSVパターンを配列に入れて、次の操作に使うことができます。

  2. ループを使用して、各サーバ(ファイルのCSVパターンはサーバのリスト)に接続し、ディレクトリにアクセスする必要があります。

私はPerlを初めて使用しています。私は2番目のことができます。しかし、私はどのように最初の部分を行うことができるか分からない。

+0

何に接続すると、あなたのために働く必要があります'qa1'などですか? – Borodin

+0

qa1、qa2、qa3、cpzなどは環境です。ユーザーは、フロントエンドhtmlのフォームからそのものを選択します。 qa1には3つのサーバーが関連付けられています。私はこれらの3つのサーバー上で/ apps/dir1の下でいくつかの変更を加える必要があります。 – RahulR

答えて

0

これは$input変数に環境名を取得する部分を記述するのはあなた次第だということを基本的な枠組み

注意、およびサーバー

use strict; 
use warnings 'all'; 

use constant ENV_FILE => 'env_data.txt'; 

my $input = 'qa1'; 

open my $fh, '<', ENV_FILE 
    or die sprintf qq{Unable to open "%s" for input: $!}, ENV_FILE; 

LINE: 
while (<$fh>) { 
    next unless /\S/; 
    my ($env, $dir, $servers) = split; 
    next unless $env eq $input; 

    for my $server (split /,/, $servers) { 

     ## Connect to $server and access $dir 

     last LINE; 
    } 
} 
+0

クイックヘルプありがとうございます..しかし、何らかの理由で$サーバー内に1台のサーバーしか得られません。 – RahulR

+0

@RahulR:おそらくそれらの間にはカンマだけでなくスペースもありますか? 'qavm01、qavm02、qavm03'のように – Borodin

+0

@RahulR:申し訳ありませんが、私のコードで間違いを犯しました。やってみよう – Borodin

関連する問題