Como procurar uma palavra levando em consideração a hifenização?

1

Para o propósito de criar um índice, estou procurando algumas palavras em vários arquivos latex . Esse processo é complicado pelo fato de que latex tem um comando de hífen discricionário \- , que indica para latex em quais locais ele pode quebrar uma palavra. Eu quero incluí-lo na minha pesquisa, mas até agora não consegui fazê-lo. Por exemplo, eu precisaria de uma expressão que correspondesse a todos

  • pādapracāra
  • pāda\-pracāra
  • pā\-da\-pra\-cā\-ra

ou instâncias diferentemente hifenizadas da mesma palavra.

Eu entendo que para combinar com a barra invertida que inicia um comando latex, é necessário digitar quatro barras invertidas, como $ grep \\mycommand * tex '.

Em vim eu posso procurar por tal expressão via /pā\(\-\)*da\(\-\)*pra\(\-\)*cāra , então eu pensei em grep que seria algo como grep pā\(\\-\)\?da *tex (e assim por diante, mas essa não combinava com nada).

    
por muk.li 27.09.2015 / 11:28

3 respostas

1

Eu não acho que você pode instruir o 'grep' a desconsiderar a hifenização.

Que tal filtrar primeiro através de 'sed' com algo como:

echo 'pa\-da\-pra\-ca\-bra' | sed -e s'/\-//g'

E você pode fazer a correspondência de padrões enquanto estiver com outra expressão (como sugerido pelo usuário cas ):

echo 'pa\-da\-pra\-ca\-bra' | sed -n -e s'/\-//g' -e '/pada/p'
    
por 27.09.2015 / 11:36
0

$ grep -Ei 'pā(\-)?da(\-)?pra(\-)?cā(\-)?ra' *tex faz o que eu preciso.

    
por 27.09.2015 / 12:19
0

Não é correto editar os documentos do laTeX por bash, mas se você quiser

grep -Ee "$(echo "padapracara" | sed "s/\B/(\\\\-)?/g")"
    
por 27.09.2015 / 12:44

Tags