Linux 如何在bash中将sed命令与几个斜杠一起使用
我试图将SED命令与包含多个Linux 如何在bash中将sed命令与几个斜杠一起使用,linux,bash,shell,awk,sed,Linux,Bash,Shell,Awk,Sed,我试图将SED命令与包含多个/的变量一起使用,但出现以下错误: sed: -e expression 1, char 16: unknown option to s 这是我的代码,在脚本中: thispath=$(readlink -f $0) sudo sed -i '13s/^/'"$thispath"'/g' /etc/rc.local 变量包含例如:/home/user/script.sh 我不太清楚sed的用法。有人能帮我吗?s命令是sed,它允许您使用任何字符来分隔正则表达式和替
/
的变量一起使用,但出现以下错误:
sed: -e expression 1, char 16: unknown option to s
这是我的代码,在脚本中:
thispath=$(readlink -f $0)
sudo sed -i '13s/^/'"$thispath"'/g' /etc/rc.local
变量包含例如:/home/user/script.sh
我不太清楚sed的用法。有人能帮我吗?s命令是sed,它允许您使用任何字符来分隔正则表达式和替换部分。“/”通常是一个糟糕的选择,因为您在UNIX路径中经常遇到它:
尝试:
直接在rc.local上执行此操作是危险的。你可以在S命令中使用一个不同的定界符。例如:“代码> SED的AsAB ab cd,g‘g’/CODE。只需知道它只是一个创可贴,当文本包含<代码>:< /代码>或<代码>和<代码>或<代码> 1 或一些其他字符/字符串,SED将其解释为文字字符以外的其他字符时,将失败。在进行备份时,您还可以在
-i
开关中添加后缀,例如-i.bak
,以便根据您答案中的代码创建一个后缀。@EdMorton我想awk-v str=“$var”NR==13{printf“%s”,str}1”文件可以解决定界符问题,但是它有点复杂,如果没有最近的一次呆呆的观察,它无法处理就地编辑。是的,通常情况下,它是在简洁和健壮之间进行选择。要为此使用sed,请参见。
sudo sed -i '13s:^:'"$thispath"':g' /etc/rc.local