Veja o tópico de comentários acima para a resposta. TL: DR a resposta é:
s/^\([A-Z]\)\+$/\item\[&\] \hfill \\/
Eu tenho um documen com cabeçalhos em ALL CAPS, por exemplo:
NAME
env - run a program in a modified environment
e eu quero inserir
\item[
antes do cabeçalho e
] \hfill \
depois de um cabeçalho para que o resultado seja como:
\item[NAME] \hfill \
env - run a program in a modified environment
Eu escrevi um script sed para adicionar formatação LaTeX para a maior parte do documento, mas essa linha do meu script não está funcionando corretamente:
s/\([A-Z]\)*/\item\[&\] \hfill \\/g
Em vez de produzir a saída desejada (exemplo acima), estou recebendo:
...\item[NAME] \hfill \
\item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \item[] \hfill \ \i$
\item[] \hfill \
...
Como você pode ver, ele insere corretamente a formatação em torno do HEADER, mas também substitui todo o restante do documento. Como posso consertar isso?
Se a linha que você deseja modificar é sempre a primeira (como parece da sua pergunta e comentários), você pode usar o AWK para facilitar.
{
if (NR == 1)
{ print "\item[" $0 "] \hfill\\" }
else
{ print ($0)}
}
Execute como awk -f myScript.awk myManPage > myLaTeXmanPage
.
Parece que você está tentando TeXify algumas páginas de manual. Você já olhou para Pandoc ? É um "conversor universal de documentos" que compreende os formatos LaTeX e man, entre muitos outros.
Na verdade, se o seu objetivo final é produzir páginas de manual em PDF, man
em si pode fazer isso por você. Por exemplo, para obter uma versão em PDF da página bash(1)
:
man -T ps bash|ps2pdf - bash.pdf
ps2pdf
faz parte do pacote ghostscript
.
Tags text-processing sed scripting