Sed unknown `s' parameter in bash script

I am having a problem with the bash script im layout working on

The im code is used here.

cat /crawler/bc_daemon.php | sed "s/PORT2/${PORT}/ig" | sed 's/IP2/IPADDRESS/ig' | \
   sed 's/USER2/USER/ig' | sed 's/PASS2/PASSWORD/ig' > bc_daemon.php

cat /crawler/bc_layout.php | sed "s/GITHUB/${REPO}/ig" | sed "s/COINNAME/${NAME}/ig" > bc_layout.php

It is strange that the lines work individually from the script. but when inside the script i get this

sed: -e expression #1, char 17: unknown option to `s'

I use '' when it can be taken literally and "" when you need to print a variable

I think this should work. But I lost where my mistake is

+4
source share
4 answers

One of the values ​​contains a slash. You need to escape from it or use another separator.

In addition, you uselessly put together several challenges in which there will be one. catalso useless.

sed -e "s@PORT2@${PORT}@ig" \
    -e 's/IP2/IPADDRESS/ig' \ 
    -e 's/USER2/USER/ig' \
    -e 's/PASS2/PASSWORD/ig'  /crawler/bc_daemon.php > bc_daemon.php

, sed . -e, sed, . script .

sed "s!GITHUB!${REPO}!ig
    s!COINNAME!${NAME}!ig"  /crawler/bc_layout.php > bc_layout.php

@ !, . nonalphanumeric ASCII , , , .

+8

cat ; . sed .

sed . , :

cat /crawler/bc_daemon.php |
sed "s/PORT2/${PORT}/ig" |
sed 's/IP2/IPADDRESS/ig' |
sed 's/USER2/USER/ig' |
sed 's/PASS2/PASSWORD/ig' > bc_daemon.php

:

sed -e "s/PORT2/${PORT}/ig" \
    -e 's/IP2/IPADDRESS/ig' \
    -e 's/USER2/USER/ig' \
    -e 's/PASS2/PASSWORD/ig' \
    /crawler/bc_daemon.php > bc_daemon.php

s///, , , i. man- GNU sed Linux , GNU sed i, i , . , ${PORT} ; , (, , ).

GNU sed ( , ), .

sed -e "s/[pP][oO][rR][tT]2/${PORT}/g" \
    -e 's/[iI][pP]2/IPADDRESS/g' \
    -e 's/[uU][sS][eE][rR]2/USER/g' \
    -e 's/[pP][aA][sS][sS]2/PASSWORD/g' \
    /crawler/bc_daemon.php > bc_daemon.php

, , /crawler, .

+3

, i sed, , , :

sed "s/GITHUB/${REPO}/g"

(kunwar.sangram , i.)

, , s, , , :

sed "s|GITHUB|${REPO}|ig"
+1

cat /crawler/bc_layout.php | \
sed "s/GITHUB/${REPO}/gI" | \
sed "s/COINNAME/${NAME}/gI" > bc_layout.php
0

Source: https://habr.com/ru/post/1548127/


All Articles