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