複数のファイルでWordを検索し、結果ごとに1行だけを返すか、デフォルトのように行全体ではなく、限られた数の文字(たとえば、40〜80文字)を返したいです。
grep -sR 'wp-content' .
file_1.sql:3309:blog/wp-content
file_1.sql:3509:blog/wp-content
file_2.sql:309:blog/wp-content
現在、次のように表示されます。
grep -sR 'wp-content' .
file_1.sql:3309:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without Visionary systems. Continually redefine prospective deliverables without.
file_1.sql:3509:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without Visionary systems. Continually redefine prospective deliverables without.
file_2.sql:309:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without Visionary systems. Continually redefine prospective deliverables without.
egrep -Rso '.{0,40}wp-content.{0,40}' *.sh
これはRadio-Symphonie-Orchestraを呼び出しませんが、-o(nlyマッチング)を呼び出します。
パターンの前後に最大40文字。注:*e* grep。
Grepとcutを組み合わせて使用できます
あなたの例を使用して、私は使用します:
grep -sRn 'wp-content' .|cut -c -40
grep -sRn 'wp-content' .|cut -c -80
それはあなたにそれぞれ最初の40または80文字を与えるでしょう。
編集:
また、grepには、次のフラグを使用できます。
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
これは私が以前に書いたものと組み合わせて:
grep -sRnm 1 'wp-content' .|cut -c -40
grep -sRnm 1 'wp-content' .|cut -c -80
これにより、ファイルごとに最初に表示され、最初の40文字または80文字のみが表示されます。
正規表現を'^.*wp-content'
に変更すると、egrep -o
を使用できます。例えば、
egrep -sRo '^.*wp-content' .
-o
フラグにより、egrepは行の一致する部分のみを出力します。したがって、行の先頭からwp-content
に一致させると、最初のコードブロックにサンプル出力が生成されます。