Edite todas as linhas de uma só vez

0

Eu tenho um arquivo .txt com quase todos os aeroportos do mundo. Cada linha é um aeroporto diferente e as linhas estão neste formato: Cidade, país - nome do aeroporto (código do aeroporto)

ou seja:

Le Mans, France - Arnage (LME)
Detroit, USA - Willow Run (YIP)
San Francisco, USA - San Francisco International (SFO)

(o arquivo .txt completo está aqui: link )

Mas quero neste formato: "Cidade, país - nome do aeroporto (código do aeroporto)" = > "Código do aeroporto"

(sim, com aspas, é para codificação PHP)

ou seja:

"Le Mans, France - Arnage (LME)" => "LME"
"Detroit, USA - Willow Run (YIP)" => "YIP"
"San Francisco, USA - San Francisco International (SFO)" => "SFO"

Como posso fazer isso de uma vez?

    
por Hugo 09.06.2013 / 04:14

4 respostas

5

Eles funcionam imediatamente no Linux, OSX, etc:

  1. Perl

    perl -ne 'chomp; /\((.+?)\)/; print "\"$_\" => \"$1\"\n"' list.txt
    

    mais Perl, este usa magia:

    perl -ane 'print "\"@F\" => \"$F[$#F]\"\n"' a
    
  2. awk / gawk

    awk -F '[()]' '{print "\""$0"\" =>\""$2"\""}' list.txt
    
  3. @ sed do evilsoup

    sed  -e 's/(\(...\))/()" => ""/' -e 's/^/"/' list.txt
    

Nenhum destes altera o arquivo original, use -i para as opções Perl e sed ou redirecione a saída se você quiser salvar:

command list.txt > new_list.txt
    
por 09.06.2013 / 05:11
1

Você também pode usar um editor de texto gráfico com recursos de edição de várias linhas, como Sublime Text .

  • Selecione todos com Cmd A e, em seguida, ative o modo de edição de linha com Shift Cmd L .
  • Vá para o final da linha com Cmd e copie o código do aeroporto entre parênteses. Em seguida, envolva a linha entre aspas, adicione o => e cole o código novamente.
  • Pressione Esc para sair do modo de edição de linha.

Então, basicamente, você pode fazer o mesmo que faria com uma linha.

    
por 09.06.2013 / 09:44
0

O Emacs tem a capacidade de usar vários cursores. Dessa forma, você poderia editar diretamente todas as linhas ao mesmo tempo. O vídeo sobre como configurar isso está no site link do Emacs Rocks.

    
por 09.06.2013 / 07:55
0

Você pode copiá-lo e colá-lo em uma planilha ... depois dividir as linhas em colunas por meio do delimitador ... quando as colunas tiverem sido feitas como "Cidade, país - nome do aeroporto (código do aeroporto)" ..., basta adicionar outra coluna com uma sequência repetida: = > e copiar o texto " Código do aeroporto " da coluna para a próxima ...

Com isso, pode parecer assim:

"Cidade, país - nome do aeroporto (código do aeroporto)" = > "Código do aeroporto"

Copie e cole todo o conteúdo da tabela no notepad ou em qualquer editor de texto que você tenha para o mac ... e nesse edior, substitua o TAB por um SPACE ou NADA, conforme seus requisitos de código.

você só precisará de um software de planilhas como o MS Excel e um editor de texto como o bloco de notas. Sou usuário do windows, então não sei sobre softwares para mac ...

    
por 09.06.2013 / 11:00