
行末の正規表現について。
端末で次のようにbashが起動しています。
$ ps | grep 'sh'
2510 pts/1 00:00:00 bash
正規表現を使って、「shの後ろが空白もしくは行末」という文字列を次のように検索できます。
$ exp='sh *$'
$ ps | grep -E "$exp"
2510 pts/1 00:00:00 bash
次の表現でも検索されるのではないかと思うのですが、行末$は[ ]に入れることはできないのでしょうか?
~$ exp='sh[ $]'
$ ps | grep -E "$exp"
(ヒットなし)
2016年9月22日

No.2ベストアンサー
- 回答日時:
[]の中では、$は行末の意味を持ちません。
$の文字そのものになります。同様に^は、[]の中では、行の先頭の意味は持ちません。[]の先頭におかれた場合は、以降の文字以外の意味になります。
例 [^123]・・・・123以外の文字にマッチ
以下は、man grepからの抜粋です。(正規表現の部分)
[ と ] で囲まれた文字のリストは、そのリスト中に含まれるどれか 1 文字にマッチします。ただ
し、リストの先頭がキャレット ^ の場合は、そのリストに含まれ ない文字にマッチします。例 え
ば、正規表現 [0123456789] は数字 1 文字にマッチします。文字の範囲は最初と最後の文字をハイ
フン (‘-’) でつなぐことで指定できます。最後に、特定の名前を持つ文字クラスがあらかじめ定義
さ れ て い ま す 。 名 前が内容を示しており、それらは、 [:alnum:], [:alpha:], [:cntrl:],
[:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]
で す。例えば、 [[:alnum:]] は [0-9A-Za-z] と同じですが、後者は POSIX ロケールや ASCII コ
ード順に依存しますので、前者の方がロケールや文字集合に依存しません。 (クラス名の中の角 括
弧 はシンボル名の一部であり、リストを区切る角括弧とは別に指定する必要があることに注意) リ
ストの中では、ほとんどのメタ文字は通常の文字として扱われます。リテラル ] を含めるには、こ
の文字をリストの先頭に置いてください。同様に、リテラル ^ を含めるには、この文字をリストの
先頭以外に置いてください。リテラル - を含めるには、この文字をリストの最後に置いてください
。
tatsu99様、懇切丁寧な解説をありがとうございます。よくわかりました。
"^]-"で説明頂いたようなところが正規表現のアクロバチックなところで、覚えにくいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- UNIX・Linux 実行の仕方及び実行結果が分かりません。 2 2022/11/17 19:31
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- UNIX・Linux bashスクリプトのgrepで3XXの検索の仕方について 2 2022/09/06 21:35
- 格安スマホ・SIMフリースマホ ドコモのスマホ白ロム購入について 2 2022/10/15 14:53
- 格安スマホ・SIMフリースマホ AQUOS sense2 SH-M08から何に乗り換えるのがベスト? 3 2023/07/25 10:39
- UNIX・Linux Linuxについて2つ質問したいです。 ① シェルスクリプト名をawk1.shとして、指定されたデー 1 2023/02/03 03:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
この正規表現の意味は?
-
正規表現の展開
-
ワイルドカードと正規表現って...
-
データベース検索フォーム作成
-
3回以上連続する文字(どんな...
-
Perlで別ファイルから文字列の抽出
-
文字同士の比較~抜き出し
-
正規表現でパスワードのチェック
-
アスタリスクを検索できません
-
行末の正規表現について。
-
Perlでさらに気の利いた文字列...
-
VBA 文字に半角が含まれて...
-
シェルで文字列を置換したい。
-
Excel2003 IF関数の条件指定方法
-
EXCELで、一つのセルに書かれた...
-
マイク取得音声のテキスト変換
-
同一連続文字の改行(テキストエ...
-
特定の文字を削除したい
-
エクセルで見えないが、何かが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報