Editar todas las líneas a la vez

Editar todas las líneas a la vez

Tengo un archivo .txt con casi todos los aeropuertos del mundo. Cada línea es un aeropuerto diferente y las líneas tienen este formato:Ciudad, país - Nombre del aeropuerto (código de aeropuerto)

es decir:

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

(el .txt completo está aquí:http://snipt.org/AnT8)

Pero quiero en este formato:"Ciudad, País - Nombre del aeropuerto (Código de aeropuerto)" => "Código de aeropuerto"

(sí, entre comillas, es para codificación PHP)

es decir:

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

¿Cómo puedo hacer esto de una vez?

Respuesta1

Estos funcionan de inmediato en Linux, OSX, etc.:

  1. perla

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

    más Perl, este usa magia:

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

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

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

Ninguno de estos cambia el archivo original, utilícelo -ipara Perl y sedopciones o redirija la salida si desea guardar:

command list.txt > new_list.txt

Respuesta2

También puede utilizar un editor de texto gráfico con capacidades de edición de varias líneas, comoTexto sublime.

  • Seleccione todo con CmdA, luego active el modo de edición de líneas con ShiftCmdL.
  • Vaya al final de la línea con Cmdy copie el código del aeropuerto entre paréntesis. Luego, ajuste la línea entre comillas, agregue =>y pegue el código nuevamente.
  • Presione Escpara salir del modo de edición de línea.

Básicamente, puedes hacer lo mismo que harías con una línea.

Respuesta3

Emacs tiene la capacidad de utilizar múltiples cursores. De esa manera, podrías editar directamente todas las líneas al mismo tiempo. El vídeo sobre cómo configurar esto se encuentra en el sitio web de Emacs Rocks.http://emacsrocks.com/e13.html.

Respuesta4

Podrías copiarlo y pegarlo en una hoja de cálculo... luego dividir las líneas en columnas mediante el delimitador... cuando las columnas se hayan creado como"Ciudad, País - Nombre del aeropuerto (Código de aeropuerto)"... simple agregar otra columna con cadena repetida:=>y copie el "Código de aeropuerto"columna a la siguiente...

Con eso podría quedar así:

"Ciudad, País - Nombre del aeropuerto (Código de aeropuerto)" => "Código de aeropuerto"

Simplemente copie y pegue todo el contenido de la tabla en el bloc de notas o en cualquier editor de texto que tenga para Mac... y en ese editor, reemplace TAB con ESPACIO o NADA, según los requisitos de su código.

solo necesitarás un software de hoja de cálculo como MS Excel y un editor de texto como el Bloc de notas. Soy usuario de Windows, así que no sé sobre software para Mac...

información relacionada