我想要grep
一个字符串,但也显示前面的五行和以下五行以及匹配的行.我怎么能这样做?
我想搜索一个大写单词,例如文件中的COPYRIGHT.我尝试过执行搜索:
/copyright/i # Doesn't work
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道在Perl中,如果我将i
标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式.似乎Vim有自己的方式来表示不区分大小写的正则表达式.
我正在编写一些脚本到grep
某些目录,但这些目录包含各种文件类型.
我想grep
只是.h
和.cpp
现在,但也许其他几个人的未来.
到目前为止,我有:
{ grep -r -i CP_Image ~/path1/;
grep -r -i CP_Image ~/path2/;
grep -r -i CP_Image ~/path3/;
grep -r -i CP_Image ~/path4/;
grep -r -i CP_Image ~/path5/;}
| mailx -s GREP email@domain.com
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何添加特定的文件扩展名?
我正在寻找foo=
目录树中的文本文件中的字符串.它在一台普通的Linux机器上,我有bash shell:
grep -ircl "foo=" *
Run Code Online (Sandbox Code Playgroud)
在目录中还有许多匹配"foo ="的二进制文件.由于这些结果不相关并且减慢了搜索速度,我希望grep跳过搜索这些文件(主要是JPEG和PNG图像).我该怎么办?
我知道有--exclude=PATTERN
和--include=PATTERN
选项,但模式格式是什么?grep的手册页说:
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
Run Code Online (Sandbox Code Playgroud)
搜索grep include,grep include exclude,grep exclude和variants没有找到任何相关内容
如果有一种更好的方法只在某些文件中进行grepping,我就是全力以赴; 移动违规文件不是一种选择.我不能只搜索某些目录(目录结构很乱,随处可见).另外,我无法安装任何东西,所以我必须使用常用工具(如grep或建议的查找).
这些技术之间的核心架构差异是什么?
另外,哪些用例通常更适合每种用例?
这是一个面试问题:
给定一个包含40亿个整数的输入文件,提供一个算法来生成一个未包含在文件中的整数.假设您有1 GB内存.如果您只有10 MB内存,请跟进您的操作.
我的分析:
文件大小为4×10 9 ×4字节= 16 GB.
我们可以进行外部排序,因此我们可以了解整数的范围.我的问题是在排序的大整数集中检测缺失整数的最佳方法是什么?
我的理解(阅读完所有答案后):
假设我们正在讨论32位整数.有2 ^ 32 = 4*10 9个不同的整数.
情况1:我们有1 GB = 1*10 9*8位= 80亿位内存.解决方案:如果我们使用一个代表一个不同整数的位,那就足够了.我们不需要排序.执行:
int radix = 8;
byte[] bitfield = new byte[0xffffffff/radix];
void F() throws FileNotFoundException{
Scanner in = new Scanner(new FileReader("a.txt"));
while(in.hasNextInt()){
int n = in.nextInt();
bitfield[n/radix] |= (1 << (n%radix));
}
for(int i = 0; i< bitfield.lenght; i++){
for(int j =0; j<radix; j++){
if( (bitfield[i] & (1<<j)) == 0) System.out.print(i*radix+j);
}
}
}
Run Code Online (Sandbox Code Playgroud)
情况2:10 MB内存= …
我正在尝试构建我正在构建的Django站点的搜索,并且在搜索中我正在搜索3种不同的模型.为了获得搜索结果列表的分页,我想使用通用的object_list视图来显示结果.但要做到这一点,我必须将3个查询集合并为一个.
我怎样才能做到这一点?我试过这个:
result_list = []
page_list = Page.objects.filter(
Q(title__icontains=cleaned_search_term) |
Q(body__icontains=cleaned_search_term))
article_list = Article.objects.filter(
Q(title__icontains=cleaned_search_term) |
Q(body__icontains=cleaned_search_term) |
Q(tags__icontains=cleaned_search_term))
post_list = Post.objects.filter(
Q(title__icontains=cleaned_search_term) |
Q(body__icontains=cleaned_search_term) |
Q(tags__icontains=cleaned_search_term))
for x in page_list:
result_list.append(x)
for x in article_list:
result_list.append(x)
for x in post_list:
result_list.append(x)
return object_list(
request,
queryset=result_list,
template_object_name='result',
paginate_by=10,
extra_context={
'search_term': search_term},
template_name="search/result_list.html")
Run Code Online (Sandbox Code Playgroud)
但这不起作用当我尝试在通用视图中使用该列表时,我收到错误.该列表缺少clone属性.
有人知道如何合并三个列表page_list
,article_list
和post_list
?
在Git代码库中,我想列出包含特定单词的所有提交.我试过这个
git log -p | grep --context=4 "word"
Run Code Online (Sandbox Code Playgroud)
但它并不一定会给我回文件名(除非它比我搜索的单词少了5行.我也尝试过
git grep "word"
Run Code Online (Sandbox Code Playgroud)
但它只给我现在的文件,而不是历史.
如何搜索整个历史记录以便我可以跟踪特定单词的更改?我的意思是在我的代码库中搜索单词的出现以跟踪更改(在文件历史记录中搜索).
我刚开始使用Android Studio(IntelliJ),现在我正在查找该功能,以便在项目的任何文件中找到字符串的出现.例如:我想找到包含字符串" .getUuid()
"的所有文件
右上角的搜索没有给出正确的结果,我认为我无法在编辑>查找下找到此功能.
有人能指出我正确的方向吗?