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

时间:2018-06-25 12:53:47

标签: c regex sed

我有以下文件和内容

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必须是fruit =“ apple”       但它显示的是fruit = apple(双引号不会出现)

当我将命令作为Linux命令单独尝试时,它会显示双引号。

1 个答案:

答案 0 :(得分:2)

在C字符串文字中,\""字符的转义序列。看来您也想在外壳程序中以"字符转义\字符。为此,您应该在C字符串文字中将其写为\\\"。字符串文字源中的\\在实际的字符串对象(\的数组)中产生单个char。字符串文字源中的\"在实际的字符串对象中产生一个"