Unix-команда для поиска слова в файлах:
grep
$ man grep | grep -A 5 DESCRIPTION
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a
match to the given PATTERN. By default, grep prints the matching lines.
In addition, three variant programs egrep, fgrep and rgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F. rgrep is the same
as grep -r. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.
Сценарии оболочки вообще не имеют числовых переменных, так что это не проблема. Сообщение об ошибке верно на 100 %. 10.128063739 -0.1028907398 — это не команда, она нужна вам для создания выходных данных для отправки в bc.
Попробуйте:
Difference=$(echo "$CollegeMin-$HighSchoolMin" | bc)
вместо
Я вижу, у @davolfman есть ответ, который вам нужен.
К вашему сведению, вы можете использовать регулярные выражения с группой захвата для заработной платы, чтобы оптимизировать поиск выпускников средней школы (12-го класса )и выпускников колледжа (16-го класса )заработной платы:
sed 's/^[^,]*,[^,]*,12,\(.*\)/\1/;t;d' wages.csv # High School Grad Wages
sed 's/^[^,]*,[^,]*,16,\(.*\)/\1/;t;d' wages.csv # College Grad Wages
Вот обновленный скрипт для HighSchoolMin и CollegeMin:
HighSchoolMin=$(sed 's/^[^,]*,[^,]*,12,\(.*\)/\1/;t;d' wages.csv | sort -n | head -1)
CollegeMin=$(sed 's/^[^,]*,[^,]*,16,\(.*\)/\1/;t;d' wages.csv |sort -n | head -1)