- 论坛徽章:
- 2
|
原文件b.txt 内容是这样的(只有一行):
variable "aa" "bb" //testing
在shell下执行下面的命令:
grep "variable" b.txt | sed "s/variable//g" | sed "s/\/\/testing//g" | sed 's/"//g'
输出为:
aa bb
但是我写了一个tcl的文件,内容为:
% grep "variable" b.txt | sed "s/variable//g" | sed "s/\/\/testing//g" | sed "s/\"//g"
输出是这样:
sed: -e expression #1, char 5: unknown option to `s'
child process exited abnormally
经查验,问题出在 sed "s/\/\/test
我的问题是:
1.在shell下为什么不可以外面用双引号,类似 sed “s/\"//g” ,而一定要用单引号包住引用的双引号,像这样sed 's/"//g'? 这就是普通的正则表达式啊
2. tcl中为什么替换//,不可以像c shell一样的用sed "s/\/\/testing//g"?
3. 我用下面的命令,只能替换掉一个/,怎么样才能把两个//都替换掉?
grep "variable" b.txt | sed "s/variable//g" | sed "s/\"//g" | sed "s/\\/testing//g"
输出为:
aa bb /
|
|