grepを使用するときに行の長さ制限を設定する方法(行の長さで結果をフィルターする)


8

ユースケースは、HTML / CSS / JSファイル(サブディレクトリを含む)のディレクトリで特定のCSS属性を検索していることです。一部の1ライナーJSライブラリには、検索しているCSS属性もあります。

私の定義した$ max_line_lengthより長い行に結果を与えてはならないことをgrepに伝える方法はありますか?

ありがとうございました!

回答:


12

最初のアプローチでは、最初にgrepから1行のJSファイルを除外しようとします。多くの場合、これらはsome-library.min.jsのような名前を持つため、次のようなことができます。

$ grep --exclude '*.min.js' ...

もう1つの方法は、CSSファイルに含まれることがわかっている場合、ackを使用して、検索をCSSファイルに制限することができます(そして、さまざまなVCS cruftを無視します)。

$ ack --type=css ...

ただし、質問に答えるために、行の長さに一致する正規表現を作成できます。次は、100文字以下の行に一致します。

$ grep -E '^.{,100}$'

2
ack-grep一部のシステムで+1
デニスウィリアムソン

1
また、ackは縮小されたJavascriptファイルを無視します。それらはソースコードではないと見なし、無視します。
アンディレスター

1
私のgrepは、何らかの理由で{0,100}でのみ機能しました。
手本
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.