2014-10-03 8 views

ответ

1

Вы можете использовать AWK с substr так:

awk '/^\//{$0 = "<i>" substr($0,2) "</i>"}1' file 

Когда есть / в начале строки добавьте теги и используйте substr для удаления косой черты из исходной строки. 1 - true, поэтому awk выполняет действие по умолчанию для каждой строки, которое должно печатать строку.

+1

прекрасно работает. Благодаря! – eagleeyetom

0

Вы можете попробовать ниже патч в команду,

$ sed 's~^/\(.*\)~<i>\1</i>~' file 
<i>Foo is awesome</i> 

Через AWK,

$ awk '/^\//{sub(/^\//,"<i>");sub(/$/,"</i>")}1' file 
<i>Foo is awesome</i> 
1
sed '\#^/# {s//<i>/;s#$#</i>#;}' YourFile 
# or (with maybe space before) 
sed '\#^ */# {s//<i>/;s#$#</i>#;}' YourFile 

другой СЕПГ образом, это позволяет работать на этой линии (если что-то еще, чтобы сделать, а не просто sourround по тегу)

0
$ awk 'sub("^/","<i>"){$0 = $0 "</i>"} 1' file 
<i>Foo is awesome</i> 
+0

Итак, возвращаемое значение 'sub' указывает, был ли шаблон сопоставлен? –

+1

Да. Возвращаемое значение sub() и gsub() - это время, в течение которого регулярное выражение было сопоставлено, а в случае sub() может быть только 1 или 0. –

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