
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ランキング
-
Perlで一行で文字列の置き換え
-
文字列の一致について
-
正規表現の否定先読みで、複数...
-
浮動小数点数について
-
文字連続の検出手段
-
|。ってなんですか? 正規表現
-
文字列検索のAND条件を引数にし...
-
CGI.pmで'&'が'&'に置き換...
-
CSVファイルの中で、「 , 」カ...
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
cgi perlの条件式にて
-
全角英数字の必要性が理解できない
-
位置指定の文字マッチングと同...
-
1つのセルに1つ以上のデータ...
-
Excelの中に全角ひらがな、漢字...
-
このHPのアドレスバーの区切り...
-
WORDで改ページすると時々グレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
角カッコが含まれてるかどうか...
-
VBA EXCEL あるセルの中の一...
-
バッチファイルの正規表現を利...
-
正規表現の否定先読みで、複数...
-
「abcで始まらない」を正規表現...
-
ログファイルからキーワードを...
-
英字の大文字小文字および混在...
-
正規表現
-
正規表現についてご教示お願い...
-
正規表現 英数字を1つ以上含む...
-
正規表現でのパイプ(or)を減...
-
正規表現のAND条件記述手法
-
CASLIIの穴埋め問題について。
-
条件式、htmやcgiやphpが含まれ...
-
XML::Xpathで部分一致検索をす...
-
正規表現のパターン " [^<]*?>"
-
intの挙動?
-
拡張子の正規表現
-
if(str=='a' || str=='b' || st...
おすすめ情報