从bash中的一行读取表格数据

时间:2016-01-04 23:52:59

标签: linux

我需要检查用户提供的引脚是否存在以及是否存在然后显示他们的名字和姓氏...我需要它在bash脚本中PS:我们有一个带有卡片,姓名,姓名,E / A的文件(以其他问题接受或否定)以及此格式的帐户余额:

0098876634569080 NIKOLAOU VASILEIOS Ε 25575 
0033872234566751 MAVRAGANIS GEORGIOS Α 12345

我已经完成了这个

read -p "Insert Pin"
if ! grep $REPLY filename
then
echo "ERROR"
exit 1
else grep $REPLY filename
$V1=grep -c $REPLY filename
head -$v1 filename | :   and then dunno :P 

1 个答案:

答案 0 :(得分:1)

当我收集它时,这实际上是一个关于从文件中读取字段的问题。 grep不是一个好工具 - 如果在不同的字段(即余额)中找到PIN,或者给定的值只是PIN的子字符串,它会给你一个匹配(例如,如果用户输入了0的PIN码。请考虑一下:

read -p "Insert Pin"

found=0
while read -r pin name surname has_accepted balance; do
  # unlike grep, look ONLY in pin field, and ONLY for exact match
  if [[ $pin = "$REPLY" ]]; then
    found=1
    echo "Name is $name; surname is $surname; balance is $balance; etc"
    break # don't continue to look after we found a match
  fi
done <filename

if ! (( found )); then
  echo ERROR >&2
  exit 1
fi

有关在bash中阅读数据的长篇讨论,请参阅BashFAQ #001