Я пытаюсь использовать "sed" с новой строкой, но я хочу использовать эту новую строку в var, например:

#!/bin/sh
var1='tags'
var2='aw1 \n
aw2 \n
aw3'

sed -i ':a;N;$!ba;s@'"$var1"'@'"$var2"'@g' *.html

Я хочу заменить tags шаблонов в моем документе на множество строк внутри моего var2 .

BEFORE:
tags


AFTER
aw1
aw2
aw3

1 ответ1

1

Если я правильно понял, это должно быть так же просто, как заменить каждый ENTER на «\n». Подобно:

sed "s/tags/aw1\naw2\naw3/g" file

Не используйте оба (ENTER и \n). Дайте мне знать, если я понял проблему.

а также... Я просто забыл: если вам нужно поместить его в переменную, вы должны "дважды экранировать" \n. подобно

v=tags; c=aw1\\naw2\\naw3; sed "s/$v/$c/g" *.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .