Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
Regex GNUSED删除单引号_Regex_Linux_Bash_Gnu - Fatal编程技术网

Regex GNUSED删除单引号

Regex GNUSED删除单引号,regex,linux,bash,gnu,Regex,Linux,Bash,Gnu,问题在于,除了匹配模式中没有提到的单引号外,sed还删除了单引号: echo "aaa 'w' ddd" | sed -r 's/aaa/echo dd/ge' 导致 dd w ddd 你对此有什么解释吗?结尾的“e”导致了它。本质上,您要求sed这样做: echo dd 'w' ddd 这将产生你所看到的结果。你可以这样做: echo $(echo "aaa 'w' ddd" | sed -e 's/aaa/dd/g') 结尾的“e”导致了它。本质上,您要求sed这样做: echo d

问题在于,除了匹配模式中没有提到的单引号外,sed还删除了单引号:

echo "aaa 'w' ddd" | sed -r 's/aaa/echo dd/ge'
导致

dd w ddd
你对此有什么解释吗?

结尾的“e”导致了它。本质上,您要求sed这样做:

echo dd 'w' ddd
这将产生你所看到的结果。你可以这样做:

echo $(echo "aaa 'w' ddd" | sed -e 's/aaa/dd/g')
结尾的“e”导致了它。本质上,您要求sed这样做:

echo dd 'w' ddd
这将产生你所看到的结果。你可以这样做:

echo $(echo "aaa 'w' ddd" | sed -e 's/aaa/dd/g')
结尾的“e”导致了它。本质上,您要求sed这样做:

echo dd 'w' ddd
这将产生你所看到的结果。你可以这样做:

echo $(echo "aaa 'w' ddd" | sed -e 's/aaa/dd/g')
结尾的“e”导致了它。本质上,您要求sed这样做:

echo dd 'w' ddd
这将产生你所看到的结果。你可以这样做:

echo $(echo "aaa 'w' ddd" | sed -e 's/aaa/dd/g')

为了更好地理解,我建议在这个特殊标志上添加一个符号。
echo$(…)
是多余的jksha:是的,你是对的。我最初采用RES=$(echo“aaa'w'ddd”| sed-e's/aaa/dd/g)的两步方法;echo$RES,但随后决定OP可能不需要将结果存储在变量中,因此我删除了变量并回显了$(…)的结果!!!我需要扩展标志“e”,因为它对找到的模式计算一些算术表达式。也许最好的方法是对输入文件进行一些预处理,并用\'替换单引号?还有其他想法吗?让我们看看你想做什么,我们来看看!我认为Perl可能是您的朋友……为了更好地理解,我建议在这个特殊的标志上添加一个符号。
echo$(…)
是多余的jksha:是的,您是正确的。我最初采用RES=$(echo“aaa'w'ddd”| sed-e's/aaa/dd/g)的两步方法;echo$RES,但随后决定OP可能不需要将结果存储在变量中,因此我删除了变量并回显了$(…)的结果!!!我需要扩展标志“e”,因为它对找到的模式计算一些算术表达式。也许最好的方法是对输入文件进行一些预处理,并用\'替换单引号?还有其他想法吗?让我们看看你想做什么,我们来看看!我认为Perl可能是您的朋友……为了更好地理解,我建议在这个特殊的标志上添加一个符号。
echo$(…)
是多余的jksha:是的,您是正确的。我最初采用RES=$(echo“aaa'w'ddd”| sed-e's/aaa/dd/g)的两步方法;echo$RES,但随后决定OP可能不需要将结果存储在变量中,因此我删除了变量并回显了$(…)的结果!!!我需要扩展标志“e”,因为它对找到的模式计算一些算术表达式。也许最好的方法是对输入文件进行一些预处理,并用\'替换单引号?还有其他想法吗?让我们看看你想做什么,我们来看看!我认为Perl可能是您的朋友……为了更好地理解,我建议在这个特殊的标志上添加一个符号。
echo$(…)
是多余的jksha:是的,您是正确的。我最初采用RES=$(echo“aaa'w'ddd”| sed-e's/aaa/dd/g)的两步方法;echo$RES,但随后决定OP可能不需要将结果存储在变量中,因此我删除了变量并回显了$(…)的结果!!!我需要扩展标志“e”,因为它对找到的模式计算一些算术表达式。也许最好的方法是对输入文件进行一些预处理,并用\'替换单引号?还有其他想法吗?让我们看看你想做什么,我们来看看!我想Perl可能是你在这里的朋友。。。