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

grepは、正規表現に一致する(または一致しない)行の入力を検索し、その結果を出力するUnixコマンドラインユーティリティです。このタグは、grep機能の使用方法、grepで機能する正規表現の作成方法、および一般的な使用法についての質問に使用します。Unixライクな環境(Windows上のCygwinなど)でgrepが利用できるようになったため、互換性に関する質問やバージョンとソフトウェア環境の違いについてもこのタグを使用できます。


9
grepファイルの先頭?
Linuxシェルでは、特定のファイルセットがすべてで始まり<?、正確な文字列があり、先頭に他の文字がないことを確認します。「次で始まるファイル」を表現するために、grepや他の方法を使用するにはどうすればよいですか? 編集:これをワイルドカード化してheadおり、同じ行にファイル名を指定していません。そのため、grepすると、filnameが表示されません。また、"^<?"正しい結果が得られないようです。基本的に私はこれを手に入れています: $> head -1 * | grep "^<?" <? <? <? <? <? ... すべてのファイルは実際に良好です。

6
インデックスを使用してgrepを高速化しますか?
私は何度も何度も同じコードベースを作り直していることに気づきました。うまくいくのですが、各コマンドは10秒ほどかかるので、もっと速くする方法を考えています。 ではgrep、ある種のインデックスを使用できますか?インデックスはおそらく複雑な正規表現には役に立たないと理解していますが、ほとんどの場合非常に単純なパターンを使用しています。この場合、インデクサーは存在しますか? 編集:ctagsなどについて知っていますが、フルテキスト検索を実行したいと思います。

3
ディレクトリ内の各ファイルの最初の50行を再帰的にgrepするにはどうすればよいですか?
ディレクトリとそのサブディレクトリにあるすべてのファイルの最初の50行を検索する必要があります。 これは再帰的な部分を行いますが、各ファイルの最初の50行だけに制限するにはどうすればよいですか? grep -r "matching string here" . これらのファイルの一部は巨大であり、最初の50行でのみ一致させたい。一部のファイルでメガバイトのバイナリデータを検索しないようにして、プロセスを高速化しようとしています。
10 linux  unix  grep 

3
Bashシェルの履歴範囲を取得する方法
特定の範囲の履歴エントリを取得/フィルタリングするにはどうすればよいですか? 大きな履歴ファイルがあり、頻繁に使用しています history | grep somecommand さて、私の記憶はかなり悪く、またコマンドを入力した前後に他に何をしたかを見たいです。 今のところ私はこれを行います:一致する、言う4992 somecommand、それから history | grep 49[0-9][0-9] 通常はこれで十分ですが、もっと正確に行うといいでしょう。つまり、4972から5012までのコマンド、つまり20コマンドの前後に表示されます。 もっと簡単な方法があるのだろうか?カスタムスクリプトは正常に動作していると思われますが、おそらく他の誰かが以前に似たようなことをしたことがあります。
9 linux  bash  history  grep 



1
/ procとrawディスクで「grep」を使用するのが悪い考えの正確な理由は何ですか?
私はgrep -r "searchphrase" /今日走りました、そしてそれはうまくいきませんでした。私はいくつかの研究を行いfind / -xdev -type f -print0 | xargs -0 grep -H "searchphrase"、正しいアプローチであることがわかりました。 私は収集し/proc、ディスク/dev/sda1は失敗したgrepの犯人です。 「なぜ」に関する深い技術的背景が欲しいです。内のいくつかのリンク/procがトラバースされると無限ループを作成すると思います、そして私はもっと多くの理由がありますが特定は何もないと読んだと思います。 また、rawディスクがgrepさ​​れた場合はどうなりますか?バイナリデータ(/dev/sda1私が知る限り、でアクセス可能ですか?)は解釈できません。mountファイルシステムタイプを持つだけがディスクからのデータをわかりやすくするためですか?したがって、バイナリ文字列をgrepすることはまだ可能ですか?

2
Mac OS XのターミナルのGrep — 1色のみを表示
私はファイル名、行番号、およびマッチ自体に色を付けることができるのでgrepに慣れています。これらの3つは異なる色である必要があります。これはLinuxターミナルやWindowsのMinGWでも問題なく動作しますが、OS XではGREP_COLORを設定しても一致した結果の色しか取得できません。 OSにパッケージされているgrepのバージョンは古すぎますか? Terminal.appを使用したMBA 13インチの10.7.3。

1
grepを使用するときに行の長さ制限を設定する方法(行の長さで結果をフィルターする)
ユースケースは、HTML / CSS / JSファイル(サブディレクトリを含む)のディレクトリで特定のCSS属性を検索していることです。一部の1ライナーJSライブラリには、検索しているCSS属性もあります。 私の定義した$ max_line_lengthより長い行に結果を与えてはならないことをgrepに伝える方法はありますか? ありがとうございました!
8 linux  unix  regex  grep 

4
Unixのgrepは、長い検索語または短い検索語を使用してより速く動作しますか?
長い検索用語または短い検索用語を探す方が速いですか?それとも速度に影響しますか?つまり、検索語句をできるだけ正確にする必要がありますか? 100 000を超えるファイルがあり、各ファイルには20〜5000行を超えるデータが含まれています。通常、grepは検索用語の1つのインスタンスのみを見つけるために使用されます。 検索語句がでSEARCHTERM、次のような行になるとします。 NAD+DP+1234567890:92++UNIQUE+NAME+SEARCHTERM++12345+FI' 「SEARCH」または「SEARCHTERM」を探す方が速いですか?この場合、他の無関係な行でも一致が見つかっても気にしないとしましょう。 これは私が現在それをしている方法です: grep NAD+DP 123* | grep SEARCHTERM しかし、それでもかなり遅いと思います。大まかなファイル名を知っている場合でも、通常、データを見つけるのに約3〜5分かかります。これにより、範囲が約10 000ファイルに制限されます。 それでは、検索語句を長くしたり短くしたりすると役立ちますか?私の知る限り、grepは特定の長さの単語の「ブロック」を探しますか?




3
ニヤニヤ、アック、ラックの比較
しばらくの間ackを使用してきましたが、開発目的ではgrepよりもはるかに優れています。しかし、私はラクとニヤリと聞いたことがあります。誰かがそれらの3つすべてを使用し、比較を提供できますか?
8 grep  ack 

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