[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:101063] Re: 正規表現について


 しらいです。

In Message-Id <001101c39b7f$7fb499c0$0200a8c0@lancer>
        "Takeuchi" <takeu-al@xxxxxxxxxxxxxxxx>さんwrites:
> takeuchi と申します。

> [root@localhost take]# rpm -qa | grep ee*

> [root@localhost take]# rpm -qa | grep *ee*

 grep の正規表現についてはすでに回答が出ているようですが、
それ以前のお話といて、grep に正確に「ee*」や「*ee*」を渡した
いと思ったら、「"ee*"」又は「'ee*'」のように必ず quote で括
るようにして下さい。
 quote されていない「*」や「?」といった meta character は、
grep に渡る前に shell で処理されてしまいますので、実際に grep
に渡る文字列は current directory の file 群に依存します。
 上の例の場合、「ee」を含む filename が存在しないならば期待
した結果が得られるでしょうが、例えば「eefg」という filename
存在した場合、grep には「ee*」ではなく「eefg」という文字列が
渡されてしまうので、期待した結果は得られないと思います。

 似たような例として、「find . -name *.c」なんて失敗もありが
ちですよね。正解は「find . -name '*.c'」。

# 「$」や「~」を含まない場合は「""」で括れば十分ですが、含
#む場合は必ず「''」で括る必要があります。「""」の中では、そ
#れぞれ shell variable、home directory として展開されてしま
#いますから。
# 使い分けが判らなかったら、常に「''」で括るようにしておけ
#ば無難ですね。

                                               しらい たかし

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: