我有一个文件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