我已经读过类似的问题,但没有解决我的问题。
我想删除某些文件中的某些行,我在脚本中使用 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
在线编辑。