Портал

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Портал » Поиск, просмотр, замена » Добавить Строку В Нужное Место.


Добавить Строку В Нужное Место.

Сообщений 1 страница 4 из 4

1

Ищется Как Делать.

Если вы хотите добавить строку после определенного соответствия строки:

$ awk '/ВАШЕ СООТВЕТСТВИЕ/ { print; print "new line"; next }1' foo.input

sed '/pattern/a some text here' filename
An example:

$ cat test
foo
bar
option
baz
$ sed '/option/a insert text here' test
foo
bar
option
insert text here
baz
$
https://unix.stackexchange.com/questions/121161/how-to-insert-text-after-a-certain-string-in-a-file/121166#121166
ВЗЯТО ТАМ

0

2

awk '1;/PATTERN/{ print "add one line"; print "\\and one more"}' infile
Keep in mind that some characters can not be included literally so one has to use escape sequences (they begin with a backslash) e.g. to print a literal backslash one has to write \\.

It's actually the same with sed but in addition each embedded newline in the text has to be preceded by a backslash:

sed '/PATTERN/a\
add one line\
\\and one more' infile

0

3

Как проверить, содержит ли строка подстроку в Bash
http://qaru.site/questions/833/string-contains-in-bash

0

4

Тут где -то ошибка

изменение следующей строки после шаблона
Имеем
слово 1
слово 2
слово 3
Надо
слово 1
слово 4
слово 3
$ sed  '/^слово 1/{n;s/^слово 2/слово 4/}' файл

/^слово 1/ соответствует строке, которая начинается с слово 1
n; Перейдите к следующей строке.
s/^слово 2/слово 4/ На следующей строке замените слово 2 на слово 4

Текст ниже взят там https://fooobar.com/questions/5809167/changing-next-line-after-pattern-with-awk-or-sed
Дано
$ cat test
completedJob=job details abc
completedJob=job details def
currentJob=job details ghi
queuedJob=job details jkl
queuedJob=job details mno

Решение
$ sed '/^currentJob/{s/^currentJob/completedJob/;n;s/^queuedJob/currentJob/}' test
completedJob=job details abc
completedJob=job details def
completedJob=job details ghi
currentJob=job details jkl
queuedJob=job details mno

Объяснение:
/^currentJob/ соответствует строке, которая начинается с currentJob
s/^currentJob/completedJob/; на той же строке, замените currentJob completedJob currentJob.
n; Перейдите к следующей строке.
s/^queuedJob/currentJob/ На следующей строке замените queuedJob на currentJob

0


Вы здесь » Портал » Поиск, просмотр, замена » Добавить Строку В Нужное Место.