我真的很感谢你的帮助:
我有一个巨大的文件,我会给你一个如何格式化的例子:

name:lastname:email

我有一个输入文件,其中列出了许多名称,如以下示例所示:
edward
michael
jenny

我想将大文件中的name列与输入文件中的name列匹配,并且仅当它完全匹配时(不区分大小写)
一旦找到匹配项,我希望它输出一个包含所有匹配项的.txt
我想我可以使用类似于^Michael:的命令来发出它。
有人能帮我解决这个grep问题吗?
很抱歉,如果我不太清楚现在已经很晚了,而且我已经在这个问题上很久了
"Centos 5, "grep -i -E -f file.txt /root/dir2search >out.txt"

file.txt containing
^michael:
^bobert:
^billy:

什么也没找到。

最佳答案

grep -i -E -f inputfile namesfile > outputfile将按照您已经建议的模式执行您想要的操作,如果您的输入文件每行包含一个输入名:

^Michael:
^Jane:
^Tom:

-i:不区分大小写的匹配
-E:regexp模式匹配(通常是默认的,但我不知道您的环境是如何设置的)
-f:从文件中读取模式,每行一个模式
>:将输出重定向到文件
要将现有的输入文件(空间分隔的名称)描述为新的格式,可以使用:
sed -r 's/([^ ]+)[ $]?/^\1:\n/g;s/\n$//g' inputfile > newinputfile

09-17 16:32
查看更多