2017-03-08 6 views
-4

これにはbash/perlなどの設定はありません。 (私は開発者ではないが両方の経験がある)所有者とファイルパスを一致させるには、配列からBash/Perlを使用してください。

大きなファイルや古いファイルを見つけるためにスクリプトで再帰的に読み込まれるファイルシステムパスのリストがあるので、私はパスファイルのリスト以下のような:

/fs2/folder/john2a/full.txt

  • /fs1/john1a/test.conf
  • /fs1/storage/maryfolder/test.1.txt
  • 私は名前と電子メールのリストを配列に持っていますか?

    • ジョン、ジョン@ acme.com
    • メアリー、acme.com

    @メアリーは、私はファイルを解析し、パスで見つかったリスト内の名前に基づいて電子メールを送信したいです。

    だから、ジョンが使用される命名に基づく2通の電子メールを取得します:

  • /fs2/folder/"john"2a/full.txt
  • /fs1/"john"1a/test.conf

    解決策を探しており、見つかった場合は投稿します。

    ありがとうございます! Perlで

+4

をそして、あなたは問題を抱えてどこ?質問は何ですか? – jm666

+2

質問を編集して[これまでに試したこと](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –

答えて

1

あなたはこのような何かを試みることができる:

use strict; 
use warnings; 

my %email_info = (
    john => '[email protected]', 
    mary => '[email protected]', 
); 

my $fn = 'list.txt'; 

my $regex = do { my $temp = join '|', map { quotemeta } keys %email_info; qr/$temp/ }; 
open (my $fh, '<', $fn) or die "Could not open file '$fn': $!"; 

while (<$fh>) { 
    send_mail_to_user($1, $email_info{$1}, $_) if /($regex)/; 
} 
close $fh; 
+0

こんにちは、こんにちは、これは完璧であり、ありがとうございました。 「私は何の仕事をしたのか」というコメントを投稿した人たちに謝罪します - 私は配列を解析して同様のことをしたスクリプトをたくさん持っていましたが、これはまったく似ていません。再度、感謝します。 – Gripsiden

関連する問題