タグ付けされた質問 「grep」

grepは、もともとUnix用に書かれたコマンドラインのテキスト検索ユーティリティです。正規表現を使用してテキストを照合し、一般にパイプラインのフィルターとして使用されます。このタグは、質問がgrepまたはgrepベースのAPIを使用したプログラミングに関連している場合にのみ使用してください。grepコマンドラインオプション自体の使用またはトラブルシューティングに関する質問はトピックから外れています。

30
正規表現を使用したIPv4アドレスの検証
私はIPv4検証のための効率的な正規表現を取得しようとしていますが、あまり運がありません。ある時点で私はそれを持っていたように見えました(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}が、それはいくつかの奇妙な結果を生み出します: $ grep --version grep (GNU grep) 2.7 $ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1 192.168.1.1 $ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255 192.168.1.255 $ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255 $ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555 192.168.1.2555 私はこれがすでに尋ねられて答えられているかどうかを確認するために検索を行いましたが、他の答えは単に1〜3の数字の4つのグループを決定する方法を示しているように見えます。

6
Unixでの特殊文字のgrep
ログファイル(application.log)があり、次の通常および特殊文字の文字列が複数行に含まれている可能性があります。 *^%Q&$*&^@$&*!^@$*&^&^*&^& この特殊文字列を含む行番号を検索したい。 grep '*^%Q&$*&^@$&*!^@$*&^&^*&^&' application.log 上記のコマンドは結果を返しません。 行番号を取得するための正しい構文は何ですか?

5
「|」を使用したgrepping 代替オペレーター
以下は、AT5G60410.gffという名前の大きなファイルのサンプルです。 Chr5 TAIR10 gene 24294890 24301147 . + . ID=AT5G60410;Note=protein_coding_gene;Name=AT5G60410 Chr5 TAIR10 mRNA 24294890 24301147 . + . ID=AT5G60410.1;Parent=AT5G60410;Name=AT5G60410.1;Index=1 Chr5 TAIR10 protein 24295226 24300671 . + . ID=AT5G60410.1-Protein;Name=AT5G60410.1;Derives_from=AT5G60410.1 Chr5 TAIR10 exon 24294890 24295035 . + . Parent=AT5G60410.1 Chr5 TAIR10 five_prime_UTR 24294890 24295035 . + . Parent=AT5G60410.1 Chr5 TAIR10 exon 24295134 …
92 regex  linux  grep 

3
ファイル拡張子によるgitgrep
特定の拡張子を持つファイルでのみパターンをgrepしたい場合は、次のようにすることができます。 // searches recursively and matches case insensitively in only javascript files // for "res" from the current directory grep -iIr --include=*.js res ./ 私はgitgrepを介してこれを行う方法を探していましたが(ツリーとともに格納されているインデックスからgit grepの速度を利用するため)、役に立ちませんでした。私が見た、ここで特定の種類のファイルを除外することは不可能であること。

10
スターサインインgrepの使用
linux / bashの特定のファイルで部分文字列「abc」を検索しようとしています 私もです: grep '*abc*' myFile 何も返しません。 しかし、私がそうするなら: grep 'abc' myFile 正しく一致を返します。 さて、これは私にとって問題ではありません。しかし、もっと複雑な文字列をgrepしたい場合はどうすればよいですか? *abc * def * grepを使用してそれをどのように達成しますか?
90 regex  bash  grep 

8
grepまたはackによって返された長い一致する行を切り捨てる方法
行が非常に長いことが多いHTMLファイルでackまたはgrepを実行したいと思います。繰り返し折り返される非常に長い行を見たくありません。しかし、正規表現に一致する文字列を囲む長い行のその部分だけを見たいのです。Unixツールの任意の組み合わせを使用してこれを取得するにはどうすればよいですか?
89 grep  unix  ack 

5
grep出力にファイル名と行番号を表示する
grepを使用してrailsディレクトリを検索しようとしています。特定の単語を探しています。grepでファイル名と行番号を出力したいと思います。 これを行うgrepフラグはありますか?私はの組み合わせを使用しようとしている-nとし-lたが、これらはないか数字で、ファイル名をプリントアウトするか、単に簡単に読み取ることができない端末にテキストの多くをダンプしています。 例: grep -ln "search" * それをawkにパイプする必要がありますか?
87 awk  grep 

1
grepregex空白の動作
次のようなテキストファイルがあります。 12,34 EUR 5,67 EUR ... 'EUR'の前に空白が1つあり、0、XXEURは無視します。 私は試した: grep '[1-9][0-9]*,[0-9]\{2\}\sEUR' => didn't match ! grep '[1-9][0-9]*,[0-9]\{2\} EUR' => worked ! grep '[1-9][0-9]*,[0-9]\{2\}\s*EUR' => worked ! grep '[1-9][0-9]*,[0-9]\{2\}\s[E]UR' => worked ! 私が使用できない理由誰かは、plsは私を説明することができ\sますが\s*と\s[E]マッチしましたか? OS:Ubuntu 10.04、grep v2.5
87 regex  grep  gnu 

5
単語全体をgrepする方法
次のコマンドを使用して、サブディレクトリにあるものをgrepします find . | xargs grep -s 's:text' しかし、これは次のようなものも見つけます <s:textfield name="sdfsf"...../> それを回避するために何ができるので、次のようなものが見つかります <s:text name="sdfsdf"/> またはそのことについては....また見つける <s:text somethingElse="lkjkj" name="lkkj" 基本的にs:text、name同じ行にある必要があります。
87 unix  grep 

15
異なる行のファイル内の複数の文字列のgrep(つまり、行ベースの検索ではなくファイル全体)?
私は言葉を含むファイルをgrepしたいDansk、Svenskaまたは Norsk(この後、文字列が含まれていることの情報を持っている私は本当にだけなど、私のワンライナーは少しさらに進ん)使用可能なリターンコードで任意の行に。 私はこのような行を含む多くのファイルを持っています: Disc Title: unknown Title: 01, Length: 01:33:37.000 Chapters: 33, Cells: 31, Audio streams: 04, Subpictures: 20 Subtitle: 01, Language: ar - Arabic, Content: Undefined, Stream id: 0x20, Subtitle: 02, Language: bg - Bulgarian, Content: Undefined, Stream id: 0x21, Subtitle: 03, Language: cs - Czech, Content: Undefined, Stream …
85 bash  awk  grep 

6
'find'コマンドで変更された日時を表示するにはどうすればよいですか?
findコマンドを使用すると、複数のレベルのディレクトリ名を表示できます。次のコマンド/varは、パスの下にあるすべてのディレクトリを深さ2で表示します。 find /var -maxdepth 2 -type d; 結果は次のとおりです。 /var /var/log /var/log/sssd /var/log/samba /var/log/audit /var/log/ConsoleKit /var/log/gdm /var/log/sa ではstatコマンド、私が変更された日付の時間を見つけることができます。 stat /var/log/samba | grep 'Modify:' 結果は次のとおりです。 Modify: 2014-01-02 11:21:27.762346214 -0800 2つのコマンドを組み合わせて、ディレクトリが変更された日時で一覧表示されるようにする方法はありますか?


10
一部のパターンを除いて、grepする方法は?
あるパターンが発生し、他のパターンがないファイル内の行を見つけたいのですが。たとえばloom、gloom。を含むものを除くすべてのファイル/行を検索する必要があります。だから、私はloomコマンドで見つけることができます: grep -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) さて、をloom除いて検索したいですgloom。ただし、次の両方のコマンドが失敗しました。 grep -v 'gloom' -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp) grep -n 'loom' -v 'gloom' ~/projects/**/trunk/src/**/*.@(h|cpp) 目標を達成するにはどうすればよいですか? EDIT 1:私はことを意味loomし、gloom文字列(必ずしも言葉)です。したがって、たとえば、bloombergコマンド出力に必要であり、必要ありませんungloomy。 編集2:私の期待のサンプルがあります。次の行は両方ともコマンド出力にあります。 お香のベールから浮かび上がるアイコンに直面しました。 アーティは憂鬱な日に迫っています。 次の行は両方ともコマンド出力に含まれていません。 それはだgloomyin cloods - O偉大マックルdoolders owerひどい」を。 ハイピンティットホールの南西ラウンド
84 bash  grep 

2
単語のリストをgrepする方法
新しい行で区切られた100語のファイルAがあります。ファイルBを検索して、ファイルAの単語が含まれているかどうかを確認したいと思います。 私は以下を試しましたが、うまくいきません: grep -F A B
84 grep 

2
grepの結果をテキストファイルに出力します。よりクリーンな出力が必要です
Grepコマンドを使用して一連のファイルから検索文字列を検索する場合、結果をテキストファイルにダンプするにはどうすればよいですか? また、各エントリ間の改行やファイル名と検索結果を正当化する方法など、読みやすくするためのよりクリーンな結果を提供するGrepコマンドのスイッチはありますか? たとえば、変更するために離れて... ./file/path: first result ./another/file/path: second result ./a/third/file/path/here: third result に ./file/path: first result ./another/file/path: second result ./a/third/file/path/here: third result
84 text  grep  output 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.