A sequência s/<[^>]*>//g
é um comando para o mecanismo de processamento sed
; ele diz para fazer um "Search and replace". Portanto, -e 's/..../g'
significa "adicione este comando de pesquisa e substituição à execução de sed
.
Isso pode fazer mais sentido se fizermos vários comandos em um comando:
sed -e '1d' -e '$d'
adicionaria dois comandos ao processamento sed
; "delete first line" e "delete last line".
O [^>]
é uma expressão regular que significa "qualquer caractere, exceto o >
Portanto, [^>]*
significa "zero ou mais de qualquer caractere, exceto o >
E assim, <[^>]*>
significa <
, seguido opcionalmente por não >
, seguido por >
.
E então colocamos isso em um comando "search and replace" onde essa sequência é substituída por nada, e então faz várias vezes na linha (o% finalg
).
Isso significa que a string hello <abc> there <def>
coincidirá primeiro com <abc>
(o <
, depois abc
corresponde a "zero ou mais não >
", depois o >
) e substitui isso por nada e, em seguida, refaça isso para o <def>
. O resultado seria hello there
.
(observe os espaços extras, porque não os estamos removendo!)