Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
String LinuxBash-替换一个字符的多个实例,忽略单个实例_String_Bash_Replace_Character - Fatal编程技术网

String LinuxBash-替换一个字符的多个实例,忽略单个实例

String LinuxBash-替换一个字符的多个实例,忽略单个实例,string,bash,replace,character,String,Bash,Replace,Character,专家们: 这有点难以解释。我需要用其他字符替换一个字符的多次出现(我知道这可以通过使用sed或tr来实现)棘手的部分是,我需要保持字符的单个出现不变 例如,用“;”替换多次出现的“\”: 这就是我所拥有的: “这是一个字符串” 这就是我需要的: “这是一个字符串” 有没有办法做到这一点 提前感谢使用sed,您可以执行以下操作: echo "This___________is_a____string" | sed 's/_\{2,\}/;/g' 输出: This;is_a;string 小部分

专家们: 这有点难以解释。我需要用其他字符替换一个字符的多次出现(我知道这可以通过使用sed或tr来实现)棘手的部分是,我需要保持字符的单个出现不变

例如,用“;”替换多次出现的“\”:

这就是我所拥有的: “这是一个字符串”

这就是我需要的: “这是一个字符串”

有没有办法做到这一点


提前感谢

使用sed,您可以执行以下操作:

echo "This___________is_a____string" | sed 's/_\{2,\}/;/g'
输出:

This;is_a;string
小部分是{2,}量词,意思是匹配任何2或更长的,即它将保持单u不变