![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
行末の正規表現について。
端末で次のように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日
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
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ランキング
-
php初心者ですメールについて教...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
Excel VBAでPDFファイルをMicro...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
[VBScript]バイト長の判定
-
全角/半角キーをSendkeys関数で...
-
全角英数字の必要性が理解できない
-
住宅にカナを入力する際に丁目...
-
VBA EXCEL あるセルの中の一...
-
メールのcsv添付ファイルの種類...
-
VBAで「,」⇒「.」へ置換後、タ...
-
全角入力
-
VBA 置換文字がみつからない時
-
全角スペース
-
プログラミングでは、半角括弧...
-
perl 初めてのプログラムにエラ...
-
ACCESS VBA でのバイナリデー...
-
○文字目に文字挿入
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現 URL抽出「 [\\/\\b]{0...
-
シェルスクリプト [[ $number =...
-
正規表現について VB6
-
正規表現について
-
日本語環境下でのバックスラッ...
-
正規表現で2種類ある括弧を区別...
-
perlの正規表現で量指定子を繰...
-
perl初心者です。
-
言語ではなく、正規表現のみで...
-
正規表現の展開
-
正規表現
-
正規表現について教えてください
-
正規表現が解読できません。
-
pythonの正規表現、全角カタカ...
-
行末の正規表現について。
-
正規表現。行頭が○○以外にマッ...
-
配列内の要素をパターンマッチする
-
置き換えについて
-
【GVimの正規表現における検索...
-
「?」が含まれるマッチについて
おすすめ情報