Я пытаюсь прочитать содержимое файла, после поиска соответствия с контентом необходимо пропустить еще одну строку & добавить текст.Поиск содержимого в файле и добавление текста после одной строки
Для Ex: Мой текстовый файл содержит:
cd $home/t17_0/download/functional-tests/
ant compile-all
cd $home/15_5/download/functional-tests/
ant compile-all
cd $home/15_7/download/functional-tests/
ant compile-all
Я хочу, чтобы матч с линией cd $home/15_5/download/functional-tests/
(линия № 3) и добавить cd $home/15_6/download/functional-tests/
после муравой компиляции всех (линия № 4). Обратите внимание, что в моем реальном сценарии я не знаю номер строки.
Я могу написать скрипт, чтобы добавить текст после сопоставления содержания, как показано ниже:
$mat='cd $home/15_5/download/functional-tests/'
$add='cd $home/15_6/download/functional-tests/'
$file_content=get-content text.txt
($file_content) | foreach-object {
$_
if ($_ -contains $mat)
{
$add
}
}| set-content $file_content
Это соответствие линии с cd $home/15_5/download/functional-tests/
(линия № 3) и добавляет cd $home/15_6/download/functional-tests/
до того ant compile-all
(номер строки 4) ,
Извините, я скопировал только эту конкретную строку из сценария, теперь я обновил вопрос. @AnsgarWiechers: Да, это мой вопрос, я хочу вставить строку 2 строки после соответствующей строки. Я написал сценарий, как показано ниже, но я ищу лучшее решение. $ Ant = 'ant compile-all' $ file_content = get-content text.txt ($ file_content) | foreach-object {$ _ if ($ _ -contains $ mat) {$ ant $ add}} | set-content $ file_content , который дал мне результат, как ожидалось, добавив эти 2 строки после строки 3: , но я ищу лучшее решение, я не хочу объявлять и добавлять 'ant compile-all' в свой скрипт. Спасибо – peer