Как получить индивидуальный вывод из команды "sed =" / массива
Это не обман моего предыдущего поста, я прошу помощи, чтобы решить конкретную проблему сейчас.
Я использую "sed" с опцией "=" для получения номера строки файла первого вхождения указанного шаблона.
В документации говорится, что "sed option =" выводит номер(ы) строки, в которой найдено совпадение шаблона.
Я "собираю" результаты в переменную "индекс", используя подстановку команд.
Проблема двоякая - я получаю то, что кажется массивом совпадений, найденных в файле, а не только первое появление совпадения. (на самом деле это не проблема, я могу разобраться с этим позже)
Однако реальная проблема заключается в том, что я не могу понять, как получить первый результат из этого массива.
Вот базовый сценарий bash, над которым я работаю
#retrieve first matching line number index=$(sed -n "/$choice/=" "$PWD$DEBUG_DIR$DEBUG_MENU") #delete matching line plus next line from file sed -i "/$index[1], (( $index[1]++))/" "$PWD$DEBUG_DIR$DEBUG_MENU"
Что я уже пробовал:
"Массив" выглядит как \n разделенных значений , как и ожидалось в Linux.
Все варианты, которые я пробовал, всегда возвращали весь массив, а не только выбранный индекс.
Вот часть сценария, который я использовал.
78 #удалить динамическую команду и описание
79 echo ${index[1]}
80 echo {$index[0]}
81 echo "$index[1]"
82 echo "$((индекс[1]++))"