Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
在同一表达式端使用sed参数\1、\2_Sed - Fatal编程技术网

在同一表达式端使用sed参数\1、\2

在同一表达式端使用sed参数\1、\2,sed,Sed,我有一个文本文件,其中包含以下格式的许多等式: somePtrName->ARRAY[0] == somePtrName->ARRAY[0] 每当指针名称相同时,我想使用sed替换该行并改为写入true。我试过下面的食谱, 但它不起作用: $ sed 's/[^=]* == \1/true/' input.txt 我得到: sed: -e expression #1, char 19: Invalid back reference 也许我太天真了,不相信我可以在定义的同一面中使

我有一个文本文件,其中包含以下格式的许多等式:

somePtrName->ARRAY[0] == somePtrName->ARRAY[0]
每当指针名称相同时,我想使用
sed
替换该行并改为写入
true
。我试过下面的食谱, 但它不起作用:

$ sed 's/[^=]* == \1/true/' input.txt
我得到:

sed: -e expression #1, char 19: Invalid back reference

也许我太天真了,不相信我可以在定义的同一面中使用
\1

您需要首先通过在用于捕获的模式周围添加括号来捕获字符,然后只有您可以反向引用它

sed 's/\([^=]*\) == \1/true/' input.txt


sed's/\([^=]\+\)==\1/true/'请尝试以下内容,如果您同意,这在
awk
中应该很容易

awk -F'->| ' '$1==$4{print "true"}'  Input_file

可能是因为它被要求使用
sed
。但否决投票的用户应该写下原因。给了你+1,所以你又在0上:)@Jotne,谢谢你,伙计:)
awk -F'->| ' '$1==$4{print "true"}'  Input_file