問題タブ [grep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
142275 参照

linux - ファイル内の複数行パターンを検索するにはどうすればよいですか?

特定の文字列パターンを含むすべてのファイルを見つける必要がありました。頭に浮かぶ最初の解決策は、 xargs grepでパイプされたfindを使用することです。

しかし、複数行にまたがるパターンを見つける必要がある場合、バニラの grep は複数行のパターンを見つけることができないため、行き詰まります。

0 投票する
5 に答える
1876 参照

linux - ファイルにテキスト行が表示されたときに Bash で何かを行う方法

ログ ファイルに特定のテキストが表示されたらすぐにコマンドを実行したいと考えています。Bashでそれを行うにはどうすればよいですか?

0 投票する
3 に答える
1768 参照

sed - 複数のファイルから複数行のテキストを削除する

ライセンス付きのjavadoc行を削除したいJavaファイルがたくさんあります[コードで変更しています]。

私が探しているパターンは

^\* \* ProjectName .* USA\.$

しかし、行全体で一致

sed [または Windows/Linux で一般的に使用されるエディター] が複数行パターンの検索/置換を行う方法はありますか?

0 投票する
8 に答える
38444 参照

linux - ファイル内の文字列/正規表現の一致を再帰的に見つける最良の方法は何ですか? (UNIX)

通常、変数または関数が使用されているファイルを見つけようとするときに、これを数回行う必要がありました。

これを行うために、過去に grep で xargs を使用したことを覚えていますが、もっと簡単な方法があるかどうか疑問に思っています。

0 投票する
2 に答える
2438 参照

regex - grep: リテラル "+" でのマッチング

SQL スクリプト (つまり、Oracle の外部結合式) で "(+)" の出現箇所を見つける必要があります。「+」、「(」、および「)」はすべて特殊な正規表現文字であることを認識して、次のことを試しました。

現在、これは「(+)」の発生を返しますが、他の行も返します。(同じ行に開き括弧と閉じ括弧があるものは何でも見えるようです。)括弧は拡張されたgrepだけに特別であることを思い出して、私は試しました:

これらは両方とも、「()」を含む行のみを返しました。したがって、「+」をエスケープできないと仮定して、古いトリックを試しました。

それはうまくいきます。非正規表現ツールで結果をクロスチェックしました。

質問: 「+」文字で何が起こっているのか正確に説明できる人はいますか? 「(+)」で一致させるためのより厄介な方法はありますか?

(cygwin grep コマンドを使用しています。)

編集:解決策をありがとう。-- そして今、Bruno が参照した GNU grep マニュアルによると、" " を基本\+式で使用すると、"+" にその拡張された意味が与えられ、したがって 1 つまたは複数の "(" の後に ") が一致することがわかりました。 "。そして、私のファイルでは常に「()」です。

0 投票する
6 に答える
1847 参照

windows - svn 作業コピーの高速再帰的 grep

svn の特別なフォルダーを完全に除外して、svn 作業コピー内のすべての cpp/h ファイルで "foo" を検索する必要があります。GNU grepの正確なコマンドは何ですか?

0 投票する
22 に答える
750157 参照

unix - grep --exclude/--include 構文を使用して、特定のファイルを grep しない

foo=ディレクトリ ツリー内のテキスト ファイル内の文字列を探しています。これは一般的な Linux マシン上にあり、bash シェルがあります。

ディレクトリには、一致する多くのバイナリ ファイルもあります"foo="。これらの結果は関連性がなく、検索が遅くなるため、grep でこれらのファイル (主に JPEG および PNG 画像) の検索をスキップする必要があります。どうすればいいですか?

--exclude=PATTERNとオプションがあることは知ってい--include=PATTERNますが、パターン形式は何ですか? grep のマニュアルページには次のように書かれています。

grep includegrep include excludegrep exclude 、およびバリアントを検索しても、関連するものが見つかりませんでした

特定のファイルだけを grep するより良い方法があれば、私は大歓迎です。問題のあるファイルを移動することはできません。特定のディレクトリだけを検索することはできません (ディレクトリ構造は非常に混乱しており、すべてがどこにでもあります)。また、何もインストールできないため、一般的なツール ( grepや提案されたfindなど) を使用する必要があります。

0 投票する
5 に答える
1145 参照

java - Make a Perl-style regex interpreter behave like a basic or extended regex interpreter

I am writing a tool to help students learn regular expressions. I will probably be writing it in Java.

The idea is this: the student types in a regular expression and the tool shows which parts of a text will get matched by the regex. Simple enough.

But I want to support several different regex "flavors" such as:

  • Basic regular expressions (think: grep)
  • Extended regular expressions (think: egrep)
  • A subset of Perl regular expressions, including the character classes \w, \s, etc.
  • Sed-style regular expressions

Java has the java.util.Regex class, but it supports only Perl-style regular expressions, which is a superset of the basic and extended REs. What I think I need is a way to take any given regular expression and escape the meta-characters that aren't part of a given flavor. Then I could give it to the Regex object and it would behave as if it was written for the selected RE interpreter.

For example, given the following regex:

As a basic regular expression, it would be interpreted as:

As an extended regular expression, it would be:

And as a Perl-style regex, it would be the same as the original expression.

Is there a "regular expression for regular expressions" than I could run through a regex search-and-replace to quote the non-meta characters? What else could I do? Are there alternative Java classes I could use?

0 投票する
2 に答える
2680 参照

shell - バイグラムを見つけるためのシェルスクリプト

バイグラムを見つけるためのシェルスクリプトを作成していますが、これはある程度機能します。

唯一の問題は、前の文の末尾と先頭の単語がペアになっていることです。

たとえば、'hello world.' という 2 つの文の場合です。と「フーバー」。私は「世界」と一線を画します。ふー」。これらをgrepなどで除外することは可能でしょうか?

grep [.] で終止符を含むすべてのバイグラムを見つけることができることはわかっていますが、それは正当なバイグラムも見つけます。

0 投票する
3 に答える
1434 参照

windows - awkおよびWinGrepの正規表現

だから私はこのようなパターンを探しています:

size = '0x0'

ログファイルにありますが、私は大きなサイズ(4桁以上)にしか興味がありません。次の正規表現は、EditPadPro(優れたツールBTW)でうまく機能します

しかし、同じ正規表現はawkでは機能しません-繰り返し{4,}がそれを台無しにしているようです。WinGrepと同じ-正規表現の達人からのアイデアはありますか?ありがとう!