我在文件中有这个文本
"0000000441244"
"0000000127769"
Run Code Online (Sandbox Code Playgroud)
我想用'L'替换所有零
我正在尝试这一点,没有任何东西被扼杀
sed -e 's/0+/L/g' regex.txt
sed -e 's/(0+)/L/g' regex.txt
我想知道我错在哪里
per*_*eal 10
Posix兼容版本应使用00*而不是0+:
sed -e 's/00*/L/g' regex.txt
Run Code Online (Sandbox Code Playgroud)
作为旁注,g如果你想转换"000000012700009"甚至"000000012709"进入,你只需要标志"L127L9".否则,*in 's/00*/L/'将在开头包括全部为零.
在Linux(GNU版本的sed)中, 和sed -e 's/0\+/L/g' regex.txt都sed -r 's/0+/L/g' regex.txt可以,但是如果你使用Mac(BSD版本的sed),它们都不起作用,而是你必须使用这个:
sed -E 's/0+/L/g' regex.txt。
实际上最后一个也可以在 Linux 上运行,因此它更便携。对于这个特殊问题,@perreal 的建议也是可移植的。但是,当您确实需要+正则表达式中的 或其他元字符时,您最好知道如何解决它。