使用尴尬,要打印包含两个特定单词的最后一行。假设我有log.txt,其中包含以下logs
log1|Amy|Call to Bob for Food
log2|Jaz|Call to Mary for Toy and Cookies
log3|Ron|Call to Jerry then Bob for Book
log4|Amy|Message to John for Cycle
现在,需要用"呼叫"one_answers"鲍勃"提取最后一行。我尝试了 -
#!/bin/bash
log="log.txt"
var="Bob"
check=$(awk -F'|' '$3 ~ "/Call.*$var/" {print NR}' $log | tail -1)
echo "Value:$check"
so值:应打印3(第三次记录)。但这没有打印。请建议。我必须使用尴尬。
with gnu awk for Word定界符,以避免"鲍勃"错误地匹配" Bobbing":
$ awk -v var="Bob" -F'|' '$3 ~ "Call.*\<" var "\>"{nr=NR; rec=$0} END{if (nr) print nr, rec}' file
3 log3|Ron|Call to Jerry then Bob for Book
请参阅http://cfajohnson.com/shell/cus-faq-2.html#q24。如果Bob
已经保存在名为var
的外壳变量中,则使用awk -v var="$var" ...
。