sed: -e expression #1, char 1: unknown command: `''
5,461
Try this,
line="this"
del=`echo "/"$line"/d"`
sed $del /home/example/fic > /home/example/fic
In your code, you are single quotes while assigning value to variable del
. which will consider as a static string rather than executing it. We can use backticks or $()
to execute it.
better way,
line="this"
sed -i "/$line/d" /home/example/fic
-i
edit in line.
Author by
Tsifi Stifen
Updated on September 18, 2022Comments
-
Tsifi Stifen over 1 year
I have already read a similar question, but there is no solution to my problem.
I want to delete some line in some file I use sed in the script this is the code.
line="this" del='echo "'/"$line"/d'"' #it's a AltGr+7 on AZERTY keyboard but for readability of the code I use ' sed -i $del /home/example/fic.txt
I also try:
line="this" del='echo "/"$line"/d"' sed $del /home/example/fic > /home/example/fic
but I have the same error:
sed: -e expression #1, char 1: unknown command: `''
-
Tsifi Stifen almost 5 yearsThank you for your answer, I already note in the comment, I don't know how to add ` in the code and I use ' only for example. I use ` in my script but it doesn't work :)
-
Tsifi Stifen almost 5 yearsit' s work when I use directly sed "/$line/d" /home/example/fic Thank you :)
-
Tsifi Stifen almost 5 yearsthank you it's OK know :)
-
Siva almost 5 yearshope u have not declared
line
-
Angel Todorov almost 5 yearsUse
$(...)
instead of backticks -- easier to see that it's different from single quote.