grep没有在文本文件中查找名称

时间:2017-11-19 15:29:41

标签: shell grep

文本文件:

Annemie;014588529    
Stefaan;011802367    
Jan;032569874    
Hans;015253694

尝试按姓名查找电话号码,但不显示任何内容

echo -n ""
read name
number=`grep '$name' numbers.txt | awk -F';' '{print $2}'`
echo "$number"

2 个答案:

答案 0 :(得分:0)

单引号可避免变量扩展。 您正在echo -n "" read name number=$(awk -F';' -v name="$name" '$1 ~ name {print $2}' numbers.txt) echo "$number" 内搜索字符串customerSelect()。 试试这个:

<select name="customer" id="customer" />

甚至更好地减少管道(awk可以直接执行grep):

itemAdd()

答案 1 :(得分:0)

单引号阻止shell变量#!/bin/sh read -p "Enter name: " name number=$(grep -F "$name" numbers.txt | awk -F';' '{print $2}') echo "$name => $number" expand

试试这样:

-F

此外,您应该使用$(..)进行固定字符串grepping,避免使用旧式反引号command substitution,而是使用-p。如果您愿意,可以read使用sh提示符(在POSIX shell中,包括bash / {{1}})。