![sed:-e 表达式 #1,字符 1:未知命令:“”](https://linux22.com/image/158535/sed%EF%BC%9A-e%20%E8%A1%A8%E8%BE%BE%E5%BC%8F%20%231%EF%BC%8C%E5%AD%97%E7%AC%A6%201%EF%BC%9A%E6%9C%AA%E7%9F%A5%E5%91%BD%E4%BB%A4%EF%BC%9A%E2%80%9C%E2%80%9D.png)
我已经读过类似的问题,但没有解决我的问题。
我想删除某些文件中的某些行,我在脚本中使用 sed 这是代码。
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
我也尝试:
line="this"
del='echo "/"$line"/d"'
sed $del /home/example/fic > /home/example/fic
但我有同样的错误:
sed: -e expression #1, char 1: unknown command: `''
答案1
尝试这个,
line="this"
del=`echo "/"$line"/d"`
sed $del /home/example/fic > /home/example/fic
在您的代码中,在为变量赋值时使用单引号del
。它将被视为静态字符串而不是执行它。我们可以使用反引号或者$()
来执行它。
更好的方法,
line="this"
sed -i "/$line/d" /home/example/fic
-i
在线编辑。