Итак, у меня есть файл data.dat, который содержит данные о недвижимости, разделенные знаком ';' (в каком районе они расположены, площадь, цена и краткое описание).
Например:
13;78;44;garage, balcony, multiple floors
23;100;25;garden, alarm system, unfurnished
16;97;60;balcony, unfurnished, alarm system
Я пишу сценарий оболочки, в котором перечислены квартиры, которые соответствуют критериям поиска, заданным в аргументах командной строки. Например, если я запускаю программу так:
bash real.sh -search alarm system unfurnished
Вывод должен быть:
23;100;25;garden, alarm system, unfurnished
16;97;60;balcony, unfurnished, alarm system
У меня есть следующий код, который может проверять первое слово после -search:
if test "$1" = "-search"
then awk -v word="$2" 'BEGIN{FS=";"} {if ($4 ~ word) {print $0}}' data.dat;
exit 1;
fi
Но мне нужна эта программа, чтобы иметь возможность проверять любое количество слов после поиска. Как я мог это сделать? Я попытался использовать регулярное выражение "$ {@: 2}" вместо "$ 2", но это не сработало.