Заменить строку новой строкой в ​​скрипте bash - PullRequest
0 голосов
/ 14 мая 2019

Я хочу получить вывод в следующем формате:

# JENKIKNS start ===
<p>abc</p>
<p>def</p> 
<p>ghi</p> 
# JENKINS end ===

, но я получаю это:

# JENKIKNS start ===
abc def ghi
# JENKINS end ===

Мой код здесь:

ABC="abc \
def \
ghi \
"

sed -i.orig "
/java/ i\

# JENKIKNS start === \\
"$ABC"\\
# JENKINS end === \\
" sampledeploy.sh

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Вы имеете в виду что-то подобное?

sampledeploy.sh | sed '/# JENKIKNS start ===/ {n;s/\(\w*\)/<p>\1<\/p>/g;s/ /\n/g}'

Объяснение

sed 
'/# JENKIKNS start ===/   # search this pattern
{n                        # go to next line
;                         # next command
s/                        # substitute
\(\w*\)                   # save words into arg1 (\1)
/<p>\1<\/p>               # write \1 between tags
/g                        # on hole line
;                         # next command
s/ /\n/                   # replace ' ' with '\n'
g}'                       # on hole line
0 голосов
/ 14 мая 2019

Если вы хотите заменить \ на новую строку, это должно сработать

sed 's/\\/\\\n/g' test
...