sed:-e 表达式 #1,字符 1:未知命令:“”

sed:-e 表达式 #1,字符 1:未知命令:“”

我已经读过类似的问题,但没有解决我的问题。

我想删除某些文件中的某些行,我在脚本中使用 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在线编辑。

相关内容