Estou tentando obter um sed
comando para formatar (HTML) as duas primeiras letras de cada palavra a partir de uma entrada de texto simples. Gostaria de inserir um texto simples e marcar as duas primeiras letras em negrito com a <b>
tag para formar um arquivo html representando o mesmo texto, mas com formatação semelhante a esta:
https://www.reddit.com/media?url= https%3A%2F%2Fi.redd.it%2Fzwp75sv6dgqb1.png
Infelizmente não consigo obter as duas primeiras letras, mas funciona apenas com a primeira letra. Então eu entendi:
sed -e 's/\(\b\w{1,2}\)/<b>\1<\/b>/g' test.txt > test.html
mas não funciona como pretendido
input: this is a test
output: this is a test
intended: <b>th</b>is <b>is</b> <b>a</b> <b>te</b>st
IDK porque, mas este comando funciona para marcar apenas a primeira letra:
sed -e 's/\(\b\w\)/<b>\1<\/b>/g' test.txt > test.html
por que não o outro onde eu marco o \w(ord character) para {1,(or)2} ocasião de tempo mesmo que regex101 me mostre que eu deveria estar certo ( https://regex101.com/r/hBb6Yt/4 ) ?
Like
(capturegroup)
,{min,max}
é um recurso regexp EXTENDED e deve ser colocado com uma barra invertida ,sed
a menos que vocêsed
tenha e use uma opção para regexps estendidos (GNU-E -r --regexp-extended
; BSD/Mac?-E
). Além disso, você não precisa do grupo de captura aqui: