2013-05-31 4 views
0

Использование СЭД, как я могу изменить входной строки, как 9872 к 39 38 37 32 т.е. вставить цифру 3 до и пробел после каждой цифры введенной строки 9872.Изменение строки ввода с использованием СЭД

Входная строка:

9872 

Требуемая мощность:

39 38 37 32 
+1

Это довольно тривиально, что вы пробовали? Где вы застряли? – Kevin

+0

У вас есть хорошие ответы. Если «3» не фиксировано, вы можете написать: «n = 3; sed "s/[0-9]/$ n &/g" <<< "12345" ' –

ответ

3

И только для полноты, более общий способ с использованием ссылок регулярных выражений.

echo 9872 | sed -r 's/([[:digit:]])/3\1 /g' 
4
echo 9872 | sed 's/./3&\ /g' 
+1

Чтобы быть в безопасности, я бы использовал' echo 9872 | sed 's/[0-9]/3 &/g'', иначе это могло бы быть с ложными пробелами и EOL. – Marius

+0

Кроме того, я не думаю, что пространство должно быть экранировано. Наверное, ничего не болит, хотя ... – twalberg

0
$ echo "9872" | sed 's/[0-9]/3& /g' 
39 38 37 32 
+0

Большое спасибо. Работал как волшебство :) – user2440648

Смежные вопросы