sed不会删除单引号

时间:2015-07-28 21:44:40

标签: linux sed

我尝试了几种不同的格式,但都没有。任何帮助将不胜感激:

[root@home:/home/users/jlefler]$ sed "s/[',#,`,@]//g" stage_data.out > stage_data
> ^C
[root@home:/home/users/jlefler]$ sed "s/[\',#,`,@]//g" stage_data.out > stage_data
> ^C
[root@home:/home/users/jlefler]$ sed "s/[#,`,@,\\']//g" stage_data.out > stage_data
> ^C

3 个答案:

答案 0 :(得分:3)

您的问题是由sh造成的,而不是sed造成的。

双引号仍然允许某些特殊字符具有特殊含义,例如$,在这种情况下为`

这有效:

echo "a'b'c" | sed -e "s/['#\`@]//g"

或者您可以通过将模式粘贴到文件中并使用sed -f

来避免所有与shell相关的问题

答案 1 :(得分:2)

让我们问shellcheck

->{}

反引号是问题,而不是单引号。逃避吧:

Proc.new{}

以下是此行动的一个示例:

sed "s/[',#,`,@]//g" stage_data.out > stage_data
            ^-- SC1073: Couldn't parse this backtick expansion.

答案 2 :(得分:1)

试试这个:

sed "s/[',#,\`,@]//g"