コード内のシステムコマンドで正規表現を実行しようとしていますが、同様の警告でStackOverflowのスレッドを通過しましたが、以下の警告を修正する方法を理解できませんでした\\}を実行すると閉じた括弧のみに表示されるようです。警告は消えてしまいますが、リダイレクトされたファイルには正確な出力が得られません。警告:未知のエスケープシーケンス '
#include<stdio.h>
int main(){
FILE *in;
char buff[512];
if(system("grep -o '[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}' /home/santosh/Test/text >t2.txt") < 0){
printf("system failed:");
exit(1);
}
}
警告:\
は特別な意味を持つCの文字列リテラルで
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c: In function 'main':
Cの文字列リテラルで中括弧をエスケープする必要はありません。 – Downvoter
@Downvoter、trueですが、grepはこのsintaxis( '[x-y] \ {x、y}')を依頼します –