Команда sed не работает при выполнении файла C - PullRequest
0 голосов
/ 25 июня 2018

У меня есть следующие файлы и содержимое

1.txt

fruit="mango"

C файл

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

о / п должно быть фрукты = "яблоко" но он показывает фрукты = яблоко (двойные кавычки не приходят)

когда я пытаюсь ввести команду отдельно как команду Linux, она отображается в двойных кавычках.

1 Ответ

0 голосов
/ 25 июня 2018

В строковом литерале C \" является escape-последовательностью для символа ". Похоже, вы хотите экранировать символ " с символом \ в оболочке. Чтобы сделать это, вы должны написать это как \\\" в строковом литерале C. \\ в строковом литеральном источнике создает единственный \ в фактическом строковом объекте (массив char). \" в строковом литеральном источнике создает " в фактическом строковом объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...