• ベストアンサー

aliasesファイルを検索したいのです

よろしくお願いします 下記のようなファイルがあります soumu:taro,jiro.hanako haken:hanako syain:taro,jiro hanakoさんが「soumu:」と「haken:」に含まれているか確認したいときは egrep '(soumu:|kaken:)' とやっているのですが(あまりいい方法ではない) その逆、「soumu:」と「syain:」両方に含まれている人は どうやれば確認できるのでしょうか? うまい方法がみつかりません お知恵をお貸しください

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

#Perlを使った方法 #soumuとsyainに所属する人を求める while(<>){ chomp; ($syozoku,$member)=split /:/; @member=split /,/,$member; $data{$syozoku}=[@member]; } foreach $e (@{$data{"soumu"}},@{$data{"syain"}}){ $union{$e}++ && $andSet{$e}++; } @list = keys %andSet; $,=","; print @list;

popololo
質問者

お礼

ありがとうございました。 希望どおりのことができるようになりました! Perl勉強したいとおもいます。

関連するQ&A

  • Windows で ワイルドカード的検索

    Windouw Vista を使っています。 たとえば、あるフォルダー内に abc_taro_2233.txt abc_jiro_5543.txt abc_hanako_6332.txt def_taro_5566.txt ghi_jiro_4455.txt ghi_hanako_2211.txt ppp_taro_6666.txt というファイルがある時、ファイル名の中に、taro という文字列を含むファイルだけを 表示する方法はありますか? よろしくお願いします。

  • Perl:あるファイル名が指定のリスト(テキストファイル)になければ、そのファイルを消去するというのを作りたいのですが。

    RHL9.0を使ってます。/var/spool/mail/以下に次のようなファイルがあったとします。 taro hanako daisuke yukie また、/home/admin/user-name.txtというファイルには次のように書かれています。 taro hanako … このとき、perlを用いて/var/spool/mailディレクトリからuser-name.txtに名前のない人のファイルを消去するというスクリプトを作りたいのですが。おそらくif 文を使うと思うのですがどうすればよいでしょう。$userという変数にuser-name.txtの一つ一つを代入してWhile文でまわすことはできてます。後は「$userという名前のファイルが/var/spool/mail以下になかったらsystem("rm /var/spool/mail/$user");を実行する。」とするだけです。 ちなみに、userdelを-rコマンドをつけずに消去された人たちのものが実際存在する人たちのものと混在しているため消したいと言うのが動機です。

  • 複数テーブルが絡む複雑なUPDATE文の書き方

    こんばんは 次のような2つのテーブルを参照して条件を指定するUPDATE文はどのように書けばよいのでしょうか? Parentsテーブル ID, Name, HasChild, AGE 1, Tanaka, True, 20 2, Yamamoto, False, 25 3, Suzuki, True, 30 4, Kobayashi, True, 20 5, Sato, True, 25 Children ID, Name, ParentID, Male, Flag 1, Taro, 1, True, 0 2, Hanako, 1, False, 0 3, Ichiro, 3, True, 0 4, Jiro, 4, True, 0 5, Subroh, 5, True, 0 やりたいこと:20歳の親を持つ男の子のみにフラグを付ける Parentテーブルで、親が子持ち(HasChild = True)で、年齢が20歳の人だけを対象に Childrenテーブルでその親の子(Parents.ID = Children.ParentID)が男の子(Male = True)だった場合、 Flag を 0 から 1 に変更する 実行結果 Children ID, Name, ParentID, Male, Flag 1, Taro, 1, True, 1 2, Hanako, 1, False, 0 3, Ichiro, 3, True, 0 4, Jiro, 4, True, 1 5, Subroh, 5, True, 0 結果は、Tanaka TaroくんとKobayashi Jiroくんのフラグが1になります。 複数テーブルのSELECTについては勉強してきましたが、こういうパターンは初めてでわかりません。エクセルVBAから.mdbファイルを扱う時に使います。Microsoft.Jet.OLEDB.4.0のADODB.Connectionを使っています。 よろしくお願いします。

  • メール サンダーバードでメールアドレス候補が自動に

    上手く説明できるか・・・。 サンダーバードでメールをする際、「作成」で入力画面を開き、 「宛先」のところにメールアドレスを入力しますね。 その際、よく使う人はアドレス帳ではなく、 例えば、鈴木さんなら、 suzuki_taro@・・・ という方にメールする際、 「suzu」あたりまで入れると、候補が自動的に出てくる機能がありますよね。 で、「suzuki_taro@・・・」となったら「enter」で自分で最後まで 入力しなくてもよいというやつです。 便利なのですが、「鈴木」という人は多いので、 「suzu」と入れると他の鈴木さんもいっぱい出てきて、 たまに間違えて、 suzuki_taro@・・・ ではなく suzuki_jiro@・・・ を選んで、誤送信してしまうことがあります。 要は、注意すればいいのでしょうが、 suzuki_jiro@・・・ は、もう使わないので、アドレス帳にも登録されていないのですが、 このsuzuki_jiro@・・・ がしつこく出てきて、候補から消すことができません。 候補から消すことができるのでしょうか。 あまりリテラシーが高くないので、 方法が分かりましたら、やさしめに、教えていただければ嬉しいです!

  • ファイル名のソートについて教えて下さい

    ホームページビルダーV8を使っています。 分類した数字を付けたファイル名を 下記(例)のように作ったのですが 41hana.htm、423hana-pro.htm、 51jiro.htm、523jiro-pro.htm、 61take.htm、64take-nikki.htm... ファイルを開く時に、番号順ではなく 41hana.htm、51jiro.htm、61take.htm、 64take-nikki.htm、423hana-pro.htm、 523jiro-pro.htm... と、数字の桁数順に並んでしまいます。 ファイルが少ない頃は特に面倒ではなかったの ですが、増えてきたので探すのが大変です。 右クリックで[アイコンの整列]→[名前]にしても 同じようです。 今のファイル名を変更せずに、桁数に関係なく 数字順に並べ変える方法はないでしょうか?

  • 同一表に同一データがある場合のPLSQLの挙動

    お世話になります。 Oracle+PLSQL初心者です。 特定のPLSQLを発行した際の、同一データが同じ表内にある場合の動作について混乱しています。 条件を満たす列に対して値+100の反応を期待しているのですが、思うような結果が返ってきません。 偶然に上記挙動が発生し、同一データの重複が問題かなと問題のなさそうな表をつくり直したら同現象は発生しなくなりました。 1. 同じ表に2度同じデータをインサート(同一データが2つある状態) ID NAME SAL DEPT 1 TARO 0 10 2 HANAKO 100 20 1 TARO 0 10 2 HANAKO 100 20 2. 特定条件下(sal<1000, deptno=10)でsalが+100になるPLSQLを発行、COMMIT DECLARE CURSOR emp_cur IS SELECT sal, empno FROM emp WHERE deptno = 10; BEGIN FOR emp_rec IN emp_cur LOOP IF emp_rec.sal < 1000 THEN UPDATE emp SET sal = sal + 100 WHERE empno = emp_rec.EMPNO; END IF; END LOOP; END; / COMMIT; 3. SELECTでSALを確認すると200増えている(2倍) ID NAME SAL DEPT 1 TARO 200 10 2 HANAKO 100 20 1 TARO 200 10 2 HANAKO 100 20 個人的には下記のような値になると思っていました。 言葉で説明するのが難しいのですが、心当たりのある方がいらっしゃったらお答え願います。 よろしくお願い致します。 ID NAME SAL DEPT 1 TARO 100 10 2 HANAKO 100 20 1 TARO 100 10 2 HANAKO 100 20

  • エクセルVBAで他アプリケーション任意ファイルの読込法

    エクセルで下記のVBAで一太郎が起動し、任意のファイルを読み込めます。 ワード、ロータス、三四六など同様に読み込みたいのですが、 多分"JXW.application"を変更すれば良いと思うのですが、それぞれどうすれば よいのでしょうか。また、現在この方法で読み込んだ時、画面下にメニューアイコンの形で読み込まれることがあります、画面サイズの制御法を教えてください。 さらに"JXW.application"に相当する情報は、何に記載されているのでしょうか。 Dim Taro As Object Set Taro = CreateObject("JXW.application") Taro.Visible = True Taro.documents.Open "ドライブ名:ファイル名.拡張子" なにぶんVBAについて素人なので、よく理解しておりませんので、宜しく ご教示願います。

  • PowerPointに埋め込まれたサウンドファイルを取り出す方法

    サウンドファイルをリンクではなく埋め込む方法は出ていましたが、 逆に埋め込まれたサウンドファイルを抽出する方法はあるのでしょうか? 是非ともお知恵をお貸し下さい。

  • NASの利用方法

    よろしくお願いします。 社内のインフラですが、以下の構成となっています。 ・サーバ:Widnows2008R2(ドメインコントローラ) ・クライアント:Windows7(ドメイン参加済み) x 20台 ここにファイルサーバ相当として、NASを導入したいと思っています。 ※NASはOSがWindows Storage Serverでドメインに参加できる機種を考えています。 ここでNASに、社員毎に共有フォルダを作成するとします。 例) taro.yamada hanako.tanaka 次に、社員がPCでドメインユーザ「taro.yamada」でドメインにログインすると、 上記の「taro.yamada」フォルダが標準で参照できるようにしたいです。 ※例えばZドライブなどに自動でマッピングされている、など こういったことは実現は可能でしょうか?。 お知恵を頂ければ幸いです。

  • 2次元配列CSVのソート

    2次元配列で次のCSVファイルがあります。 フォームから入力したのですが、txtファイルには項目名(列名)が保存されていません。 taro,10,119 jiro,10,90 hanako,9,120 momoko,11,98 saburo,12,111 natuyo,10,130 sirou,8,88 このデータを年齢順、及び身長順に並べ替えをしたいのです。 列の名前がないので、手動でtxtファイル1行目に simei,toshi,shinchou と追記して 01: <?php 02: $data = "c:\××\××\shinchou.txt"; 03: $array = file($data); 04: foreach($array as $key => $row){ 05: $toshi[$key] = $row["toshi"]; 06: $shinchou[$key] = $row["shinchou "]; 07: } 08: print_r($array); 09: array_multisort($toshi,SORT_ASC, $shinchou,SORT_ASC, $array); 10: ?> と実行しましたが、 Array ( [0] => simei,toshi,shinchou  [1] => taro,10,119 ・・・・と、print_r($array)の結果が出るだけで、ソートが出来ません。 CSVファイルで項目名(列名)が無い場合の並べ替えはどのようにすれば良いでしょうか。 mySQLなどを利用しないと並べ替えは出来ないでしょうか。

    • ベストアンサー
    • PHP