Чтобы вставить переменную строку в файл после определенного совпадения с помощью сценария оболочки, вы можете использовать различные методы. Ниже я приведу несколько примеров:
Метод 1: использование команды sed
#!/bin/bash
match="specific match"
line_to_insert="line to insert"
sed -i "/$match/a $line_to_insert" file.txt
В этом примере команда sed используется с флагом -iдля изменения файла на месте. Он ищет шаблон «конкретное совпадение» и добавляет после совпадения «строку для вставки».
Метод 2: использование команды awk
#!/bin/bash
match="specific match"
line_to_insert="line to insert"
awk -v m="$match" -v l="$line_to_insert" '{print} $0 ~ m {print l}' file.txt > temp.txt && mv temp.txt file.txt
Этот метод использует awk для поиска шаблона «конкретного соответствия». Когда совпадение найдено, он печатает строку, которую нужно вставить после совпадения. Вывод перенаправляется во временный файл, который затем переименовывается, чтобы перезаписать исходный файл.
Метод 3: использование команды GNU grep
#!/bin/bash
match="specific match"
line_to_insert="line to insert"
grep -q "$match" file.txt && sed -i "/$match/a $line_to_insert" file.txt
Здесь опция -qкоманды grep используется для поиска шаблона «конкретного соответствия» в файле. Если совпадение найдено, для вставки строки после совпадения используется sed.