Existe uma variável Zsh com conteúdos como
$if(description-meta)$
<meta name="description" content="$description-meta$" />
$endif$
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
<style>
$styles.html()$
</style>
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
Preciso remover a <title>
linha, ou seja,
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
e sobrescrever a variável ou criar uma nova, para que seja
$if(description-meta)$
<meta name="description" content="$description-meta$" />
$endif$
<style>
$styles.html()$
</style>
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
Como é possível usar awk
ou sed
?
Removeria as linhas contidas
<title>
no conteúdo de$var
(cuidado, ele também remove caracteres de nova linha à direita, se houver).Ou você pode usar o operador estilo ksh
${var//pattern[/replacement]}
como:Para remover todas as ocorrências
<title>
junto com todos os caracteres não-nova linha que o precedem ou seguem e uma nova linha opcional para o mesmo efeito e sem ter que empurrar os dados através de umgrep
comando executado em um processo separado (e evitando o problema de remoção de nova linha) .Veja também:
Onde
"${(f@)var}"
divide$var
em line-f
eeds (usando@
aspas internas para preservar elementos vazios),f
sendo abreviação deps[\n]
.${(F)array:#*<title>*}
remove os elementos resultantes que os contêm<title>
e os une novamente com line-F
eeds,F
sendo a abreviação depj[\n]
.