Я не уверен, использует ли Angstrom загрузку на основе зависимостей или нет. Если да, то эти числа можно игнорировать. Предположим, что это не так.
Номера нужны только для упорядочивания скриптов. Важно (например) убедиться, что все файловые системы смонтированы, прежде чем пытаться запустить веб-сервер. Или убедиться, что syslogd запущен перед запуском большинства демонов.
Таким образом, в вашем случае он должен быть после (больший номер) любых скриптов, которые загружают драйверы GPIO, но до (меньший номер) скрипта, запускающего ваше приложение (который зависит от правильной конфигурации порта GPIO).
Если, как указано выше, используется загрузка на основе зависимостей, то вы правильно задаете зависимости в комментариях в верхней части скрипта, и update-rc.d должен определить номер для вас (возможно, перенумеровав и другие скрипты, чтобы все работало).
Вы можете попробовать этот awk
awk 'BEGIN{FS=OFS=","}NR==FNR{a[$0];next}FNR in a {$7=$6}1' line_index_file file.csv
Вы также можете использовать редактор sed
для выполнения этой задачи:
cmds=$(< line_index_file xargs -l printf '\t%sba\n')
sed -e "
${cmds}
;# skip these
b
:a
s/,/\n/5;s//\n/5;s//\n/5
s/\n\(.*\)\n.*\n/,\1,\1,/
" input.csv
Пояснение:
cmds
, содержащую информацию о переходе к метке :a
для строк, упомянутых в line_index_file
. \n
(, так как новая строка гарантированно не будет найдена в пространстве шаблонов sed
, в нашем случае )в конце 5-го, 6-го и 7-го полей. Попробуйте это
for i in `cat line_index_file`
do
echo -e "`awk -v b=$i -F ',' 'BEGIN{OFS = ","} NR!=b{$7=$6};{print $0}' file.csv`" > file.csv
done
NR!=b
игнорировать номера строк для условия