Это может быть один -лайнер для вас
awk -F, 'n==""||n>$1{n=$1}{while(n!=$1){print n++}}{print;n++}' < input > output
хотя это не сильно отличается от того, что у вас было раньше, за исключением «защиты» на случай, когда числовой ряд внезапно деформируется до меньшего числа.
$3 будет просто строкой имени файла, которую вы передаете сценарию bash. Вам нужно будет что-то сделать с этой строкой имени файла, чтобы извлечь из нее что-то полезное.
Если вам просто нужно получить содержимое самого файла, вы можете cat $3
получить содержимое имени файла, которое вы передали в качестве аргумента.
Если вам нужно перебрать каждую строку файла, вы можете сделать что-то вроде этого:
while IFS= read -r line; do
echo "$line" # $line is a variable that represents the current line in the file
done < "$3"
В приведенном выше примере будет просто отображаться каждая строка в файле, поэтому вам нужно добавить счетчик/логику в цикл while, который позволит вам выполнять все, что вы хотите сделать в определенных строках, и заменить оператор echo.