arquivo de texto - pesquisa via regex, negrito os resultados para imprimir fisicamente

0

Eu não consigo pensar no topo da minha cabeça um aplicativo que me permita fazer isso.

Eu tenho um documento com centenas de linhas, eu quero pesquisar através de uma expressão regular e negrito ou itálico os hits. Eu não tenho nenhum problema com o regex ou qualquer coisa, só não consigo pensar em um aplicativo que permite isso.

eu geralmente grep / sed / awk ou notepad ++ no windows, mas isso, claro, não me permite negrito os resultados. grep faz, mas eu preciso imprimir também ...

    
por captain yossarian 29.08.2014 / 14:45

3 respostas

0

Você está no Windows, eu não tenho certeza se LPT: pode ser feito para entender antigas sequências de comando estilo "ANSI.SYS" ou "sequências de escape" similares dentro de texto / documentos a serem impressos.

Além disso: você não disse se são documentos de TEXTO-FICHEIRO ou documentos do WORD com os quais você trabalha.

Aqui está um exemplo de como usar sed para tornar "0d" e "0a" (CR e LF) destacados em texto puro em um shell bash do Linux. Nota: od com os parâmetros mostrados imprime valores de byte em hexadecimal e a representação ascii do mesmo.

$ cat firstfile
1. The quick brown fox jumped over the lazy dog.

$ od -t x1z -w24 firstfile | sed -re 's/(0a)/\x1b[1m\x1b[m/g;s/(0d)/\x1b[1m\x1b[m/g'
0000000 31 2e 20 54 68 65 20 71 75 69 63 6b 20 62 72 6f 77 6e 20 66 6f 78 20 6a  >1. The quick brown fox j<
0000030 75 6d 70 65 64 20 6f 76 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 2e  >umped over the lazy dog.<
0000060 0a                                                                       >.<
0000061

nota: O último "0a" deve estar em negrito, isso não acontece aqui, parece não ser possível.

As coisas \x1b[1m e \x1b[m que você vê são as sequências necessárias para tornar o terminal do Ubuntu em negrito e, em seguida, desativá-lo. Eles vêm do banco de dados terminfo e podem ser gerados mais geralmente por tput bold e tput sgr 0 como em:

$ tput bold | od -t x1z -w24 
0000000 1b 5b 31 6d                                                              >.[1m<
0000004

$ tput sgr 0 | od -t x1z -w24 
0000000 1b 28 42 1b 5b 30 6d                                                     >.(B.[0m<
0000007
    
por 29.08.2014 / 18:55
0

Tente

$ export GREP_COLORS='ms=01;33'
$ grep -C 1000 '\<abc\>' file.txt

Veja Ajuda e exemplos do comando Linux e Unix grep

    
por 29.08.2014 / 21:02
0

Se você deseja importar seu texto para o Microsoft Word para essa finalidade, e se os recursos de pesquisa do Word forem poderosos o suficiente para você, você poderá fazer isso com o Word. (O Word pode procurar caracteres curinga semelhantes a glob, mas não expressões regulares verdadeiras.) Na caixa de diálogo "Localizar e substituir", clique em "Mais > >" e, em seguida, clique no campo "Substituir por", em seguida, clique em "Formatar" - > "Fonte" e defina a fonte que você deseja aplicar às strings encontradas:

    
por 30.08.2014 / 01:44