行末の正規表現について。
端末で次のように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ランキング
-
正規表現
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
エクセルにMicrosoft Barcode C...
-
「何とかで始まり、何とかで終...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
CString から LPCTSTRの型に変換
-
Excel VBAでPDFファイルをMicro...
-
WORDで改ページすると時々グレ...
-
Accessでのグループ化で全角・...
-
英数字のみ全角から半角に変換
-
VBA EXCEL あるセルの中の一...
-
マクロを使ってフォルダー内に...
-
CSVの定義
-
プログラミングでは、半角括弧...
-
正規表現の否定先読みで、複数...
-
全角英数字の必要性が理解できない
-
Visual Studio プロパティペー...
-
IEからEdgeへの移行に伴うIMEの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現
-
コマンドプロンプトでのsedの使...
-
シェルスクリプト [[ $number =...
-
Perlで別ファイルから文字列の抽出
-
金額にマッチする正規表現について
-
正規表現のことで
-
リナックスの grepコマンド ...
-
この正規表現を教えて!
-
正規表現。行頭が○○以外にマッ...
-
アスタリスクを検索できません
-
正規表現 .+? について
-
sedの正規表現でグループ化する...
-
メールアドレスかどうかの
-
タグを削除する正規表現について
-
正規表現について VB6
-
言語ではなく、正規表現のみで...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
おすすめ情報