Answers:
解决它:在数字开头之前加上斜杠(我使用:
单独的模式替换而不是代替/
,不需要转义斜杠)
% echo 1 2 3 4 5 6 7 | sed 's:\([1-9]\+\):/\1:g'
你的命令的问题是,你使用它*
来匹配任何一个space
或一个carret ^
。而不仅仅是其中一个,而是其中任意一个,包括0.匹配在行尾(在7之后)(幸运的是你也在开头)。
要使用任何一个单词(也称为非空格)进行此操作,请使用:
% echo ha hu 1 2 ho | sed 's:[^ ]\+:/&:g'