Perl初心者です。
指定したファイルの中から指定した文字列の入っている行を取得したいのですが、
open(FL, $ARGV[0]);
while (<FL>) {
if ($_ =~ /$ARGV[1]/) { print $_; }
} close(FL);
としたとき、
$ARGV[1]に aaa/bbb/ccc と入れてaaaかつbbbかつcccを含む行としたいのですが、うまく動作しません。
このような場合がGREPとかのコマンドを使ったほうがよいのでしょうか?
別の処理も組み込みたいので、できればperlで書きたいのですが、正規表現の文字列を引数で与えるようなことはできるのでしょうか?
よろしく御願いします。
No.1ベストアンサー
- 回答日時:
正規表現を文字列で与えることはもちろん可能ですが, 「aaa, bbb, ccc を全て含む」というのは (書けないことはないけど面倒なので) やめた方がいいと思います. 素直に && でつなぐ (あるいはもっとひねる) 方が安全です.
ひねった方向でいくと, 例えば $ARGV[1] が "aaa/bbb/ccc" だとして
my @patterns = map { qr/$_/ } split(/\//, $ARGV[1]);
open(FL, $ARGV[0]);
while (my $line = <FL>) {
print $line unless grep { $line !~ $_ } @patterns;
}
close(FL);
でいける... はずです. 試してないけど.
早々のアドバイス有難うございました。
一発で動作しました。
Perlはなかなか正規表現とか特殊な文字の扱いが覚えられずに手こずっています。
大変助かりました。
感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- C言語・C++・C# c言語 配列とポインタについて 3 2023/02/09 22:53
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの正規表現を利...
-
「何とかで始まり、何とかで終...
-
角カッコが含まれてるかどうか...
-
VBA EXCEL あるセルの中の一...
-
「abcで始まらない」を正規表現...
-
C++でofstreamに空白を含む文字...
-
正規表現の否定先読みで、複数...
-
CSVファイルの中で、「 , 」カ...
-
Excel VBAでPDFファイルをMicro...
-
EXCELからCSVにすると余計なカ...
-
Accessのテキストボックスの入...
-
エクセルで数値を全角文字(カ...
-
コマンドプロンプトでのsedの使...
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
マクロを使ってフォルダー内に...
-
エクセルにMicrosoft Barcode C...
-
カンマ区切りの数字をCSVフ...
-
VBA 文字に半角が含まれて...
-
xmlファイル内の文字列置換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
「abcで始まらない」を正規表現...
-
正規表現の否定先読みで、複数...
-
バッチファイルの正規表現を利...
-
正規表現について
-
角カッコが含まれてるかどうか...
-
XML::Xpathで部分一致検索をす...
-
英数字混じり8文字以上の正規表現
-
正規表現 英数字を1つ以上含む...
-
C++でofstreamに空白を含む文字...
-
.htaccessで特定のドメインを弾...
-
文字列の否定の正規表現について
-
正規表現
-
Perl CSVファイルの複数条件で...
-
文字列から数値を抽出したいの...
-
[正規表現]特定の範囲のIPアド...
-
ログファイルからキーワードを...
-
長い文字列から特定の数字を取...
-
正規表現にて文字数をチェック...
おすすめ情報