代码之家  ›  专栏  ›  技术社区  ›  Rahul

执行c文件时sed命令不起作用

  •  0
  • Rahul  · 技术社区  · 6 年前

    我有以下文件和内容

    1.txt文件

    fruit="mango"
    

    C文件

    #include<stdio.h>
    void main()
    {
       char *cmd=NULL;
       system("sed  -c -i  /^[[:blank:]]*fruit[[:blank:]]*=/s/=.*/=\"apple\"/  1.txt");
    }
    

    O/P必须是水果=“苹果” 但它显示的是水果=苹果(不提供双引号)

    当我以linux命令的形式单独尝试该命令时,它将显示为双引号。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ian Abbott    6 年前

    在C字符串文字中, \" " 性格。看起来你想逃离 “。” 具有 \ 贝壳中的角色。为了做到这一点,你应该把它写成 \\\" 在C字符串中。这个 \\ 在字符串文字源中产生单个 \ 在实际的字符串对象(数组 char )中。这个 \“。” 在字符串文字源中产生一个 “。” 在实际的字符串对象中。