如何从文件中打印包含模式中匹配字符的行

如何从文件中打印包含模式中匹配字符的行

我正在尝试打印具有匹配模式的相同字符的文件中的所有行。这是我的模式 -

CurrentPrincipal[MRC]
CurrentPrincipalLegalEventAssociation

在文件中我有如下行

823,agg.listgroup,CurrentPrincipal[MRC],CompanyElementDefinition
d4f170,atom.list,CurrentPrincipal[MRC][Type][*],CompanyElementDefinition
1097,agg.listgroup,CurrentPrincipalLegalEventAssociation,CompanyElementDefinition
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition
8798c3,atom.list,CurrentPrincipal[MailingAddressStreetLine1][*],CompanyElementDefinition

我正在迭代我的模式并从文件中打印其匹配行。我需要的是,当我迭代我的模式时,CurrentPrincipal[MRC]我应该只得到它的匹配行

d4f170,atom.list,CurrentPrincipal[MRC][Type][*],CompanyElementDefinition

当模式是CurrentPrincipalLegalEventAssociation我应该只得到

c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition

[ ]我的要求是在匹配模式时忽略行中的 。我已尽力提出我的问题。如果需要我提供任何其他信息,请告诉我。提前致谢。

答案1

您似乎希望按字面意思处理[和字符,而不是指示字符范围。]你可以这样做逃跑他们:

grep 'CurrentPrincipal\[LegalEventAssociation\]' file

前任。给定:

$ cat file
823,agg.listgroup,CurrentPrincipal[MRC],CompanyElementDefinition
d4f170,atom.list,CurrentPrincipal[MRC][Type][*],CompanyElementDefinition
1097,agg.listgroup,CurrentPrincipalLegalEventAssociation,CompanyElementDefinition
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition
8798c3,atom.list,CurrentPrincipal[MailingAddressStreetLine1][*],CompanyElementDefinition

然后

$ grep 'CurrentPrincipal\[LegalEventAssociation\]' file
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition

或者使用-For--fixed-strings选项告诉 grep 按字面意思处理所有字符:

$ grep -F 'CurrentPrincipal[LegalEventAssociation]' file
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition

答案2

grep似乎做你想做的事。

grep 'word' filename

将打印文件“filename”中包含“word”的每一行。

答案3

使用以下命令,文件输出出现在文件中模式搜索行之后的下一行中。

sed -n '/CurrentPrincipal\[MRC\]/p' filename | sed -n '2p'  

输出

d4f170,atom.list,CurrentPrincipal[MRC][Type][*],CompanyElementDefinition  

sed -n '/CurrentPrincipalLegalEventAssociation/,+1p' l.txt | sed -n '2p'

输出

c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition

相关内容