我想在多个文件中查找单词,并且每个结果只返回一行,或者返回有限数量的字符(例如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.
答案 0 :(得分:17)
您可以使用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个字符。
答案 1 :(得分:17)
egrep -Rso '.{0,40}wp-content.{0,40}' *.sh
这不会调用Radio-Symphony-Orchestra,但是-i(仅匹配)。
模式前后最多40个字符。注意:* e * grep。
答案 2 :(得分:4)
如果您将正则表达式更改为'^.*wp-content'
,则可以使用egrep -o
。例如,
egrep -sRo '^.*wp-content' .
-o
标志使egrep只打印出匹配行的部分。因此,从行首到wp-content
的匹配应该会在第一个代码块中产生样本输出。