gpt4 book ai didi

grep/ack -o 带有上下文字符(不是行)

转载 作者:行者123 更新时间:2023-12-01 16:36:07 27 4
gpt4 key购买 nike

我正在寻找一种方法

grep -o "somepattern"

这给了我类似的东西

html/file.js
2:somepattern
5:somepattern

但真正好的事情是在比赛之前和/或之后有一些字符(也许 20 个)。

我知道有一种方法可以显示前后行(上下文),但是有没有办法通过字符显示上下文?例如

html/file.js
2:function helloWorld(somepattern) {
5: var foo = somepattern;

我问的原因是,如果我递归地 grep 并用匹配项命中缩小的文件,它会打印整个文件,这非常烦人。

最佳答案

使用ack :

% ack -o '.{0,10}string.{0,10}' | head
cli/cmdlineparser.cpp:22:#include <string>
cli/cmdlineparser.cpp:23:include <cstring>
cli/cmdlineparser.cpp:37:onst std::string& FileList
ctor<std::string>& PathNam
cli/cmdlineparser.cpp:57: std::string FileName;
cli/cmdlineparser.cpp:66:onst std::string& FileList
list<std::string>& PathNam
cli/cmdlineparser.cpp:72: std::string PathName;
cli/cmdlineparser.cpp:92:onst std::string &message)
cli/cmdlineparser.cpp:133:onst std::string errmsg =

使用 (Gnu) grep :

% grep -no '.\{0,10\}string.\{0,10\}' **/*.[ch]* | head
cli/cmdlineparser.cpp:22:#include <string>
cli/cmdlineparser.cpp:23:include <cstring>
cli/cmdlineparser.cpp:37:onst std::string& FileList
ctor<std::string>& PathNam
cli/cmdlineparser.cpp:57: std::string FileName;
cli/cmdlineparser.cpp:66:onst std::string& FileList
list<std::string>& PathNam
cli/cmdlineparser.cpp:72: std::string PathName;
cli/cmdlineparser.cpp:92:onst std::string &message)
cli/cmdlineparser.cpp:133:onst std::string errmsg =

...最多显示“string”之前 10 个字符和之后 10 个字符...(假设它们在那里)。

我正在使用| head为了清楚起见,这里只是将输出限制为 10 行。

关于grep/ack -o 带有上下文字符(不是行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com