Я хочу добавить "/" перед каждым использованием числа sed
:
echo 1 2 3 4 5 6 7 | sed 's/[ ^]*/&\//g'
/1 /2 /3 /4 /5 /6 /7/
Когда я использую этот синтаксис, почему я добираюсь "/" после 7? Как я могу зафиксировать мой sed
синтаксис для получения этого:
/1 /2 /3 /4 /5 /6 /7
Дайте этому попытку:
echo '1 2 3 4 5 6 7' | sed 's|\w\+|/&|g'
зафиксировать его: предварительно ожидайте наклонную черту перед началом числа (я использую :
разделить шаблон и замену вместо /
, никакая потребность выйти из наклонной черты затем)
% echo 1 2 3 4 5 6 7 | sed 's:\([1-9]\+\):/\1:g'
проблема Вашей команды, который Вы используете *
соответствовать также space
или каре ^
. и не только один из них, но и любое количество их, включая 0. это соответствует в конце строки (после 7) также (и к счастью для Вас также вначале).
для создания этой работы с любым словом (иначе непространство) используют это:
% echo ha hu 1 2 ho | sed 's:[^ ]\+:/&:g'