我真的很感激这方面的帮助:
我有一个庞大的文件,我将举例说明它的格式:
name:lastname:email
我有一个输入文件,其中包含许多名称,如下例所示:
edward
michael
jenny
我希望匹配从巨大文件到输入文件中名称的名称列,并且只有在完全匹配时才会匹配(不区分大小写)
一旦找到匹配项,我希望它输出带有所有匹配项的.txt
我想我可以使用类似^Michael:
之类的命令来提供它。
任何人都可以帮我解决这个问题吗?
抱歉,如果我不太清楚它已经很晚了,我已经解决了这个问题
"Centos 5, "grep -i -E -f file.txt /root/dir2search >out.txt"
file.txt containing
^michael:
^bobert:
^billy:
没有找到任何东西。
答案 0 :(得分:2)
grep -i -E -f inputfile namesfile > outputfile
将按照您已建议的模式执行您想要的操作:
^Michael:
^Jane:
^Tom:
-i
:不区分大小写的匹配
-E
:正则表达式匹配(通常是默认设置,但我不知道您的环境是如何设置的)
-f
:从文件中读取模式,每行一个模式
>
:将输出重定向到文件
要将您描述的现有输入文件(以空格分隔的名称)转换为新格式,您可以使用:
sed -r 's/([^ ]+)[ $]?/^\1:\n/g;s/\n$//g' inputfile > newinputfile