如果文件中存在多个匹配项,则打印文件名

时间:2017-07-27 15:16:27

标签: grep

我想打印文件名,如果只有所有匹配......在不同的行上

grep -l -w '10B\|01A\|gencode'  */$a*filename.vcf

这会输出文件名,但不仅仅是所有三个匹配都存在。

4 个答案:

答案 0 :(得分:0)

您会考虑尝试awk吗? awk可以通过以下方法解决,

awk '/10B/&&/01A/&&/gencode/{print FILENAME}' */$a*filename.vcf

答案 1 :(得分:0)

尝试关注,稍微编辑了一下你的解决方案。

grep -l '10B.*01A.*gencode' Input_file

答案 2 :(得分:0)

使用grep -lwP '(?=.*?10B)(?=.*?01A)(?=.*?gencode)' /path/to/infile 及其 //Insert new Employee public IHttpActionResult CreateNewEmployee(EmployeeModels emp) { using (var ctx = new Employee()) { ctx.tempemp.Add(new tempemp() { Id = emp.Id, name = emp.name, mobile = emp.mobile, erole = emp.erole, dept = emp.dept, email = emp.email }); ctx.SaveChanges(); } return Ok(); } (Perl-Compatibility)选项和positive lookahead regex (?=(regex)),可以按任意顺序匹配模式。

ok()

答案 3 :(得分:0)

grep -l 'pattern1' files ... | xargs grep -l 'pattern2' | xargs grep -l 'pattern3'

从grep手册:

  

-l, - with-matches-matches

     

抑制正常输出;而是打印通常打印输出的每个输入文件的名称。扫描将在第一场比赛中停止。 (-l由POSIX指定。)