首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索带有分隔符的文件,查找包含一组可能字符串的行,而不显示包含字符串的行

搜索带有分隔符的文件,查找包含一组可能字符串的行,而不显示包含字符串的行
EN

Stack Overflow用户
提问于 2018-07-11 18:54:23
回答 3查看 47关注 0票数 0
代码语言:javascript
复制
grep -f strings.txt matrixToBeSearched.txt

如果我的字符串是abc,而delimitedFile.txt有行abc-def,那么即使我使用-w选项,它也会将其计算为匹配。我只需要看一看含有abc的线路。

我的矩阵很大,我的字符串列表也很大,所以我真的需要使用-f选项而不是-e

在以下分隔文件中搜索字符串abc

代码语言:javascript
复制
|abc    |123|456  
|abc-def|789|123 
|abc    |456|789 

输出

代码语言:javascript
复制
|abc    |123|456  
|abc    |456|789 
EN

回答 3

Stack Overflow用户

发布于 2018-07-11 19:49:45

给予:

代码语言:javascript
复制
$ cat file
|abc    |123|456  
|abc-def|789|123 
|abc    |456|789 
|def    |012|345

您可以使用awk来获取给定字符串的精确匹配:

代码语言:javascript
复制
$ awk -F'[| ]' -v tgt='abc' '$2==tgt {print $0}' file
|abc    |123|456  
|abc    |456|789

由于{print $0}是默认操作(正如Ed所指出的),所以可以简化为:

代码语言:javascript
复制
$ awk -F'[| ]' -v tgt='abc' '$2==tgt' file

然后,如果您想要使用一个固定字符串文件:

代码语言:javascript
复制
$ cat tgts
abc
def

现在您可以使用此awk

代码语言:javascript
复制
$ awk -F'[| ]'  'FNR==NR{tgt[$1]; next} # read the fixed strings 
                 $2 in tgt' tgts file
|abc    |123|456  
|abc    |456|789 
|def    |012|345
票数 1
EN

Stack Overflow用户

发布于 2018-07-11 19:18:57

这个问题被修改得更清楚了。

你需要的是

代码语言:javascript
复制
$ grep -Pf strings.txt matrixToBeSearched.txt

哪里

代码语言:javascript
复制
$ cat strings.txt
\|abc\s*\|

例如,

代码语言:javascript
复制
$ cat matrixToBeSearched.txt
|abc    |123|456  
|abc-def|789|123 
|abc    |456|789 
$ grep -Pf strings.txt matrixToBeSearched.txt
|abc    |123|456  
|abc    |456|789 

在这里,我使用-P参数作为Perl正则表达式。

您可以修改strings.txt的内容,以获得更好和更强的grep方法。

票数 0
EN

Stack Overflow用户

发布于 2018-07-11 19:20:00

-w认为-是一个单词分隔符,因为它不会是bash中变量名的一部分,也就是说,var=1; echo $var-iable将产生"1-iable“。

您可以编辑您的字符串列表,以匹配您的核心单词"abc“只使用|或在旁边与[| ]abc[| ]。或者,您可以按照“David”的建议来做,并使用abc[^-]来避免抓住破折号。

在strings.txt中没有一个grep标志可以让您的"abc“匹配|abc |,而不是|abc-def |。您必须编辑字符串列表才能获得此功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51292441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档