2016-11-07 95 views
-1

我想将模式文件的内容与正则表达式(即grep -E -f)组合使用。grep combine -f和-E

输入文件的格式为

2 List_of_anthropologists<!!>Q1279970 
3 List_of_Governors_of_Alabama<!!>Q558677 
2027476 12th_Dalai_Lama<!!>Q25240 
etc.. 

和图形文件的格式为:

13th_Dalai_Lama 
5th_Dalai_Lama 
etc... 

我能让他在模式“13th_Dali_Lama”手动把工作

grep -E "^(\d*)(?:\t)13th_Dalai_Lama" input_file 

但是,如何结合-f选项,以便13th_Dalai_Lama被替换为pat中的行tern文件?

+0

请添加所需的输出为输入您的问题样本。 – Cyrus

+0

输出应该是input_file中与正则表达式匹配的行,使模式文件中的行从模式文件“”插入“^(\ d *)(?:\ t)行”。例如:13th_Dalai_Lama应匹配:13th_Dalai_Lama Q558677但不是List_of_13th_Dalai_Lama Q558677 – Jay

+0

您的模式文件不包含输入文件中的子字符串。 – Cyrus

回答

1

随着GNU的grep,GNU SED和bash:

grep -f <(sed 's/.*/\\b&\\b/' pattern_file) input_file