我真的很感谢你的帮助:
我有一个巨大的文件,我会给你一个如何格式化的例子:
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