-2
正規表現に関する一般的な質問はいくつか見つかりましたが、私はこの作業を行うことはできません。私は私のパターンの中に特定の文字列の除外を含めたいと思います。私の使用例は、object
以外のスーパークラスを持つクラスを定義するpythonファイル内のすべての行を見つけることです。したがって、例:grep:単語以外のすべてに一致する
class Class1(Superclass): #match
class Class2(othersuperclass, Superclass): #match
class Class3(object): #no match
次の正規表現を使用して、クラスを定義する行を一致させることができます。私はそれが最適ではないと確信していますが、それは私が持っているものだとそれが動作します:
grep -n '^[[:space:]]*class[[:space:]][[:space:]]*[[:alpha:]][[:alnum:]]*[[:space:]]*(.*):' *
しかし、私は括弧内の「オブジェクト」を持っている行を除外する方法を見つけ出すことはできません。
編集:私はもっとはっきりしていたはずです。私はファイルシステムで再帰的にファイルを検索しようとしています。現在、私はgrep
をコマンドラインから使用していますが、より良いコマンドラインユーティリティがあれば、それを聞いてうれしいです。
私は通常、パターンに一致する行を除外するために 'grep -v'を使います。したがって、例えば、 'grep ... | grep -v object'を実行します。 – dsh
なぜ、astとos.walkを使用しないのですか? –
@PadraicCunningham編集 – ewok