在文件中变量完全匹配后打印第二列值



我有一个文件list.txt,其中包含这样的数据

hvar-mp-log.hvams europe@gmail.com
mvar-mp-log.mvams japan@gmail.com
mst-mp-log.mst  korea@gmail.com
pif-mp-log-pif atlas@gmail.com

我需要匹配list.txt中的字符串,并打印匹配的字符串第二列数据。

如果字符串=mst-mp-log.mst打印korea@gmail.com.我可以像这个例子一样匹配字符串

grep -q "$string" list.txt

如何打印匹配的字符串邮件id。预期的输出应该是这样的korea@gmail.com

带awk:

string="mst-mp-log.mst"
awk -v var="$string" '$1 == var {print $2}' list.txt

或者,如果你的grep命令已经返回了正确的行,也许:

grep -q "$string" list.txt | awk '{print $2}'

以下是在管道中使用单个命令的解决方案:

$ grep '^mst-mp-log.mst ' list.txt | tr -s ' ' | cut -d ' ' -f 2
korea@gmail.com

最新更新