“类grep”的输出;文件:ln#:匹配模式:段落;可能的

“类grep”的输出;文件:ln#:匹配模式:段落;可能的,grep,Grep,我喜欢使用以下命令,但完美更好;-) 为此: grep -w -i -r -o -n -f all.txt . > output.txt 我们得到: ./index.php:86:match1 ./index.php:89:match2 也有可能得到这两者的组合吗?像这样: ./index.php:86:match1:complete paragraph1 ./index.php:89:match2:complete paragraph2 这会很好,甚至比这更好,这是这一段的一

我喜欢使用以下命令,但完美更好;-)

为此:

grep -w -i -r -o -n -f all.txt . > output.txt   
我们得到:

./index.php:86:match1
./index.php:89:match2
也有可能得到这两者的组合吗?像这样:

./index.php:86:match1:complete paragraph1
./index.php:89:match2:complete paragraph2
这会很好,甚至比这更好,这是这一段的一部分,但我想,用这样一个简单的工具,这要求有点高;-)


谢谢

grep没有这方面的工具,但是可以很容易地在一个简单的Awk脚本中重新实现有用的部分

awk 'NR==FNR { p[++i] = tolower($0); next }
    { line = tolower($0); for (j=1; j<=i; ++j) if (match(line, p[j]))
        { printf "%s:%i:%s:%s\n", FILENAME, FNR, substr($0, RSTART, RLENGTH), $0;
          next } }' all.txt files...
awk'NR==FNR{p[++i]=tolower($0);next}

{line=tolower($0);for(j=1;jp请定义“字符串:狮子”段落的一部分,段落:“丛林中充满了动物,但狮子不在其中”,部分:…充满了动物,但狮子不是…我对AWK一点也不熟悉,所以我必须读懂它,至少知道我将对服务器做什么。在我接受它作为答案之前,这是我至少能做的;-)更新了一个简短的解释。仍在挣扎。如果我需要它在卷曲的页面中搜索怎么办(因此它基本上循环两次:1次用于URL,1次用于字符串),像这样?curl-s$url | awk…我该如何处理包含字符串的txtfile?谢谢!不确定你的意思。听起来像是一个足够重要的扩展名,你可以发布一个新问题来正确解释你需要什么。链接回这个问题作为背景可能是个好主意。但如果我完全理解w你的意思是,让Awk读取标准输入和一个文本文件,比如
curl…| Awk'…'all.txt-
,其中
-
意味着读取标准输入。几乎完美。现在唯一的问题是最后一个'-'打印'-'作为文件名。我们可以从打印中删除它,因为我们已经回显了curl,但是如果有一个简单的修复方法,我们就不需要了帽子,干杯。
awk 'NR==FNR { p[++i] = tolower($0); next }
    { line = tolower($0); for (j=1; j<=i; ++j) if (match(line, p[j]))
        { printf "%s:%i:%s:%s\n", FILENAME, FNR, substr($0, RSTART, RLENGTH), $0;
          next } }' all.txt files...