Tenho um arquivo de texto com diversas linhas que desejo juntar (concatenar) em um editor de texto. Ou seja, sem recorrer a ferramentas de linha de comando (especialmente no Windows, onde elas podem até não estar disponíveis).
Estou usando Geany e sua função de pesquisa e substituição sem sucesso: tentei substituir $ por nada usando regex (multilinha) e \n por nada usando sequências de escape.
Mesmo a correspondência multilinha parece substituir apenas o conteúdo, deixando as linhas (vazias) como estão!
Existe algum método simples para fazer isso?
Responder1
Obrigado a @Prasanna confirmando que deve funcionar com uma substituição "baseada em sequência de escape". Eu descobri que poderia ser um problema com o encerramento da linha e, de fato, substituir \n por um espaço coloca um espaço no início de cada linha!
Então eu acho que seria dependente da plataforma, mas deveria funcionar de acordo com a linha que termina em uso:
No Windows, procure por
\r\n
Substitua por nada (sequência vazia) ou um caractere de espaço, dependendo de suas necessidades.
A expressão regular não parece funcionar de forma alguma.
Responder2
Descobri que o segredo para unir linhas no Geany por meio de pesquisa e substituição de regex é garantir que Use multi-line matching
esteja ativado. Eu adoro Geany, então aqui está a sequência de etapas para remover finais de linha (Windows mostrado aqui, altere os caracteres de escape do final de linha conforme necessário para *nix):
- Verifique os finais de linha: selecione no menu
View >> Show line Endings
(por exemplo, no Windows, isso mostrará CRLF (\r\n)). - Destaque/selecione as linhas que deseja juntar
- CTRL-H (Substituir)
- No
Search for:
campo digite\r\n
- No
Replace with:
campo não digite nada - Certifique-se
Use regular expressions
de que está marcado - Certifique-se
Use multi-line matching
de que está marcado - Clique
In Selection
para unir todas as linhas da seleção (obviamente isso também pode ser feito em todo o documento ou linha por linha, conforme desejar).
Não vai funcionar sem verificar Use multi-line matching
, então essa é a dica secreta.
Responder3
Na verdade, existe um comando Join Lines no Geany, mas está meio oculto: você tem que ir em Edit/Preferences/Keybindings Action: Format/Join Lines, e lá você pode atribuir um atalho de teclado; como dizem emFalha de junção de linhas #510:
Sim, "juntar linhas" não está em um menu, isso é ruim porque dificulta a descoberta, e atribuir um atalho de teclado não deve fazê-lo aparecer no menu.
Mas se for atribuído um atalho de teclado, ele funciona para mim com o ccec1fe.