Arquivo1:
$ sed '/Test_Macro/{N;$!N;s/.*\(Test_Macro[^)]*);\).*//;p;};d' abc.txt
Test_Macro(abc, def, "\n string1 string2 \n test string",
"test string2 \n");
Test_Macro(asdsadas, "test String1");
Arquivo2:
$ sed '/Test_Macro/{N;$!N;s/.*\(Test_Macro[^)]*);\).*//;p;};d' abc2.txt
Test_Macro(abc, def, "\n string1 string2 \n test string",
"test string2 \n",
123456);
Test_Macro(asdsadas, "test String1");
ps, a maneira mais fácil de remover todas as quebras de linha é
echo -e "line \n break" | tr "\n" " "
sem quebras de linha;
$ sed ':a;N;$!ba;s/[^;]\n[ ]*/ /g;' abc2.txt | grep Test_Macro
Test_Macro(abc, def, "\n string1 string2 \n test string" "test string2 \n" 123456);
Test_Macro(asdsadas, "test String1");
sem "\ n", mas com quebras de linha ... lol
$ sed '/Test_Macro/{N;$!N;s/[ ]*\n//g;s/.*\(Test_Macro[^)]*);\).*//;p;};d' abc2.txt
Test_Macro(abc, def, " string1 string2 test string",
"test string2",
123456);
Test_Macro(asdsadas, "test String1");
apenas removendo a string "\ n" (e o espaço à direita);
$ sed ':a;N;$!ba;s/\n[ ]*//g;' abc2.txt
Test_Macro(abc, def, "string1 string2 test string",
"test string2 ",
123456);
// Some code or text
Test_Macro(asdsadas, "test String1");
// Some code...
mais uma vez (espero que da última vez) ... removendo string "\ n" quando na função Test_Macro, mas não fora, e não removendo quebras de linha;
$ sed '{N;/Test_Ma/{s/[ ]*\n//g;};s/\(Test_Macro[^)]*);\)//};' abc2.txt
Test_Macro(abc, def, " string1 string2 test string",
"test string2",
123456);
// Some code or text \n
Test_Macro(asdsadas, "test String1");
// Some code...
atualização;
$ sed '{:a;N;/Test_Ma/{s/[ ]*\n//g;};ta};' abc2.txt
Test_Macro(abc, def, " string1 string2 test string",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
"test string2",
123456);
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
// Some code or text \n
Test_Macro(asdsadas, "test String1");
// Some code...