Snažím se napsat příkaz sed, který nahradí řádek v souboru. Nahrazení sed vyžadovalo aktuální pracovní adresář, díky čemuž je příkaz trochu chaotický kvůli znakům, které je třeba ukončit.
Tady je to, co zatím mám:
sed -i "s/^log.*$/log `echo pwd | sed 's/\//\\\//g'`\/redis\/redis.log\/" ./conf/redis.conf
To mi však dává chybu se sed.
Pokusil jsem se to rozdělit na jednodušší příkazy:
[email protected]:~/project$pwd | sed 's/\//\\\//g'
\/home\/user\/project
Toto vrátí to, co chci, ale když se pokusím přidat substituci příkazů, selže:
[email protected]:~/project$ echo `pwd | sed 's/\//\\\//g'`
sed: -e expression #1, char 9: unknown option to `s'
Jakákoli pomoc by byla oceněna
Přijatá odpověď:
Pokud to čtu správně, pokoušíte se nahradit lomítka (/
) s uvozeným lomítkem (\/
)? To dostane hodně snadnější manipulace, pokud nepoužíváte /
jako váš oddělovač v sed
:
~ $ pwd | sed 's_/_\\/_g'`
\/home\/username
~ $ echo "$( pwd | sed 's_/_\\/_g' )"
\/home\/username