我尝试了几种不同的格式,但都没有。任何帮助将不胜感激:
[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
答案 0 :(得分:3)
您的问题是由sh
造成的,而不是sed
造成的。
双引号仍然允许某些特殊字符具有特殊含义,例如$
,在这种情况下为`
。
这有效:
echo "a'b'c" | sed -e "s/['#\`@]//g"
或者您可以通过将模式粘贴到文件中并使用sed -f
答案 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"