У меня есть пример кода и желаемый выход ниже
Образец:
void function_patternWD1()
{
some_code;
some_code_patternWD3;
some_code;
}
/*some_comments_patternWD2*/
void function_patternWD4()
{
some_code;
some_code_patternWD6;
some_code;
}
/*some_comments_patternWD5*/
Желаемый вывод:
void function_patternWD1()
{
some_code;
new_line_of_code_1; //after sed command
some_code_patternWD3;
some_code;
}
/*some_comments_patternWD2*/
void function_patternWD4()
{
some_code;
new_line_of_code_2; //after sed command
some_code_patternWD6;
some_code;
}
/*some_comments_patternWD5*/
Что я пробовал:
#!/bin/bash
if [ "$1" = "fileName" ]; then
sed -e'/patternWD1/,/patternWD2/{/patternWD3/i new_line_of_code_1;' -e '}'
-e'/patternWD4/,/patternWD5/{/patternWD6/i new_line_of_code_2;' -e '}' < "$1"
fi
Изначально я пытался
#!/bin/bash
if [ "$1" = "fileName" ]; then
sed -e'/patternWD1/,/patternWD2/{/patternWD3/i new_line_of_code_1;}' < "$1"
fi
Но это не сработало, поэтому я задал вопросздесь и автор исправил это для меня до
#!/bin/bash
if [ "$1" = "fileName" ]; then
sed -e'/patternWD1/,/patternWD2/{/patternWD3/i new_line_of_code_1;' -e '}' < "$1"
fi
, который отлично работает с одной командой, но когда я использую это как в То, что я пробовал: Сценарий, кажется, не работает, поскольку он зависает, и я не вижу никаких результатов.
Может ли кто-нибудь объяснить синтаксис использования этой конкретной команды и почему моя команда не сработала, а другая сработала?