
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.:
perla
perl -ne 'chomp; /\((.+?)\)/; print "\"$_\" => \"$1\"\n"' list.txt
más Perl, este usa magia:
perl -ane 'print "\"@F\" => \"$F[$#F]\"\n"' a
awk / boquiabierto
awk -F '[()]' '{print "\""$0"\" =>\""$2"\""}' list.txt
Sed de @evilsoup
sed -e 's/(\(...\))/(\1)" => "\1"/' -e 's/^/"/' list.txt
Ninguno de estos cambia el archivo original, utilícelo -i
para Perl y sed
opciones 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 Cmd→y 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...