a=1
echo -n "Enter book id: "; read book_id;
while [ $a -eq 1 ]
do
a=$(awk '{ if($3 == "$book_id") print 1; else print 0}' exercise1_data.txt)
echo $a
if [ $a -eq 1 ]; then
echo -n "Please enter unique book id: "; read book_id
fi
done
Я пытаюсь проверить, является ли введенный пользователем идентификатор книги уникальным или нет. То, что я делаю, это проверить файл «exercise1_data.txt», если есть какой-либо экземпляр «book_id». Цикл while должен выполняться до тех пор, пока пользователь не вводит уникальный идентификатор книги.Валидации с использованием AWK
Я получаю сообщение об ошибке Too many arguments
ошибка все еще сохраняется ... Пожалуйста, не могли бы вы помочь собрать код .. Я новичок в программировании AWK ... – debal
Это потому, что ошибка была 'bash' ошибка не' awk' ошибка. Я добавил правильный скрипт 'bash'. Пожалуйста, поддержите и примите этот ответ. –
Спасибо за подсказку в полевом сепараторе, я действительно об этом не думал .. Есть что-то еще, что мне было интересно. Все обучающие материалы, которые я привел, показали, что awk имеет синтаксис 'awk 'BEGIN {} {} END {}'', где может использоваться любая комбинация из трех. В вашем коде есть несколько вещей, которые я вижу в вашем коде: нет 'if ($ 3 == b_id)' и является фрагментом '{print 1; exit} 'часть инструкции' if' или часть 'awk process segment'. – debal