linux - 当存在歧义时使用grep从linux中的txt文件中提取文本

标签 linux bash awk grep

我有一个名为 l.txt 的文件,其中包含以下数据、名字和姓氏。当我传递名字时,输出应该是姓氏。以下查询对我有用。

l.txt

name Tony Mcgill
name Jag John
name Jagmohan Singh

这对名字 tony 很有效。但是当我搜索 jag 时,它给出了两个结果,John & Singh。但我只需要约翰。我怎样才能做到这一点。

grep -e '^'"name jag" l.txt | awk '{print $3}' 

我正在使用这个命令。

最佳答案

你可以使用 grep -w 来匹配一个词:

grep -iw 'tony' file
name Tony Mcgill

或者在您的 grep 中使用单词边界:

grep -i '\<tony\>' file

或者:

grep -i '\btony\b' file

关于linux - 当存在歧义时使用grep从linux中的txt文件中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998138/

相关文章:

git - 我可以对我的 .bash_profile 进行版本控制吗?

linux - 如何在停止时自动启动容器?--AWS

linux - 每个虚拟主机的error_log?

java - 在 Linux 中使用重定向时如何使用 ProcessBuilder

python - 通过交互式 shell 控制 Raspberry Pi 的 Telegram 机器人

regex - awk 提取文本第 N 次出现的方括号(包含文件文本中的换行符)

ruby-on-rails - rbenv 不能在 ubuntu 上使用 rbenv 和 ruby​​-build 工作吗?

bash - For循环不工作ffmpeg

Linux 用多列连接多个文件

linux - 在 Mac OS X 上使用 AWK 拆分文件