[解決済み] grepで星座を使う
質問
linux/bashで特定のファイル内の部分文字列"abc"を検索しようとしています。
だから、そうする。
grep '*abc*' myFile
何も返しません。
でも、そうすると
grep 'abc' myFile
正しくマッチを返します。
さて、これは私にとっては問題ではありません。しかし、もっと複雑な文字列をgrepしたい場合はどうでしょう。
*abc * def *
grep を使ってどのように実現するのでしょうか?
どのように解決するのですか?
アスタリスクは、ちょうど
繰り返し演算子
しかし、何を繰り返すかを指示する必要があります。
/*abc*/
は,abと0個以上のcを含む文字列にマッチする(2番目の*はcの上にあるため,1番目は繰り返すものがないので意味がない).もし何かにマッチさせたいなら、次のように言う必要がある。
.*
-- ドットは任意の文字 (
一定のガイドラインの範囲内で
). もし、abcだけにマッチさせたいのであれば、次のようにすればよいでしょう。
grep 'abc' myFile
. より複雑なマッチングには
.*
--
grep 'abc.*def' myFile
は、abcの後にdefを含み、その間に任意で何かを挟む文字列にマッチします。
コメントに基づいて更新します。
*
は、正規表現での * と全く同じではありません。コンソールでは、*は
グロブ構成
であり、単にワイルドカードとして機能する(例えば
ls *.log
は、末尾が.logのファイルをすべてリストアップします)。しかし、正規表現では、*は修飾語であり、その前にある文字またはグループにのみ適用されることを意味します。正規表現の * をワイルドカードとして使用したい場合は、次のようにします。
.*
ドットはワイルドカード文字で、星印はドットを修正するときに、1つ以上のドットを見つけることを意味します。
関連
-
[解決済み] アポストロフィの正規表現
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Gitの履歴からコミットしたコードをgrep(検索)する方法
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
-
[解決済み] grepを使ってフォルダ内の単語を検索するにはどうすればよいですか?
-
[解決済み] grepで行番号を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン