我遇到一个问题,我试图在TCL Shell中执行它时在sed命令中替换一个变量。 下面是我尝试过的。
set variable 5
exec sed "s/test1\$/test1;test1 $variable/g" file1 > file2
我看到以下错误。 错误:sed:-e表达式#1,字符75:`s'的未知选项 使用error_info获取更多信息。 (CMD-013)
我在堆栈溢出时尝试了一些链接,但这没有帮助。 Using a Variable in a sed command called in Tcl Script
答案 0 :(得分:2)
一般方法是正确的。试试这个 1 :
▶ expect
expect1.1> set var /bin/sh
/bin/sh
expect1.2> exec sed -n "s%:$var\$%:/bin/bash%p" /etc/passwd
root:*:0:0:System Administrator:/var/root:/bin/bash
expect1.3> exec sed -n "s%:$var\$%:/bin/bash%p" /etc/passwd > /tmp/log
分析您的错误消息:
Error: sed: -e expression #1, char 75: unknown option to `s'
请注意,sed至少包含75个字符-比您的代码示例中的字符多得多。这是否可以帮助您找出问题所在?如果没有,请更新您尝试的实际代码。
1 注意,期望只是在TCL上添加了一些扩展,而我的笔记本电脑上没有TCL。