Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cpp中的管道内部(awk)系统命令_C++_String_Awk_Pipeline - Fatal编程技术网

C++ cpp中的管道内部(awk)系统命令

C++ cpp中的管道内部(awk)系统命令,c++,string,awk,pipeline,C++,String,Awk,Pipeline,我有一个awk命令wch,我想在system()中包装它 将错误获取为 错误:未知的转义序列“\\\” 我试着用不同的方式引用。但是,没有任何帮助。也许可以避开-F“|”引号 您只需转义\: std::string cmd = "awk -F\\| '{ var1=$2; var2=$5; print var1, var2 }' 1.txt"; //-----------------------^ 当你创建C++字符串时, \>代码>被当作一个转义字符,除非你脱逃它。< /P> 或者,在本例

我有一个awk命令wch,我想在system()中包装它

将错误获取为

错误:未知的转义序列“\\\”

我试着用不同的方式引用。但是,没有任何帮助。

也许可以避开-F“|”引号


您只需转义
\

std::string cmd = "awk -F\\|  '{ var1=$2; var2=$5; print var1, var2 }' 1.txt";
//-----------------------^

当你创建C++字符串时,<代码> \>代码>被当作一个转义字符,除非你脱逃它。< /P> 或者,在本例中,您可以只引用分隔符,避免转义:

std::string cmd = "awk -F'|'  '{ print $2, $5 }' 1.txt";
我假设你的脚本可能比现实中的更复杂,但我还是为你简化了它,以防有所帮助

最后一个选项,使用原始字符串文字(C++11支持):

R
前缀意味着
\
不再被解释为转义字符。

看这里
std::string cmd = "awk -F\\|  '{ var1=$2; var2=$5; print var1, var2 }' 1.txt";
//-----------------------^
std::string cmd = "awk -F'|'  '{ print $2, $5 }' 1.txt";
std::string cmd = R"awk -F\|  '{ print $2, $5 }' 1.txt";