У меня есть файл .txt почти со всеми аэропортами мира. Каждая строка представляет собой отдельный аэропорт, и линии имеют следующий формат: город, страна - название аэропорта (код аэропорта)

то есть:

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

(полный текст .txt находится здесь: http://snipt.org/AnT8)

Но я хочу в этом формате: «Город, Страна - Название аэропорта (код аэропорта)» => "Код аэропорта"

(да, с кавычками, это для кодирования PHP)

то есть:

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

Как я могу сделать это сразу?

4 ответа4

5

Они работают из коробки на Linux, OSX и т.д .:

  1. Perl

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

    больше Perl, этот использует магию:

    perl -ane 'print "\"@F\" => \"$F[$#F]\"\n"' a
    
  2. AWK / простак

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

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

Ничто из этого не изменяет исходный файл, используйте -i для параметров Perl и sed или перенаправьте вывод, если вы хотите сохранить:

command list.txt > new_list.txt
1

Вы также можете использовать графический текстовый редактор с возможностями многострочного редактирования, например, Sublime Text.

  • Выберите все с помощью Cmd A, затем включите режим редактирования строки с помощью Shift Cmd L.
  • Перейдите в конец строки с помощью Cmd и скопируйте код аэропорта в скобках. Затем оберните строку в кавычки, добавьте => и снова вставьте код.
  • Нажмите Esc, чтобы выйти из режима редактирования строки.

В общем, вы можете сделать то же самое, что и с одной строкой.

0

Emacs имеет возможность использовать несколько курсоров. Таким образом, вы можете напрямую редактировать все строки одновременно. Видеоролик об этом можно найти на веб-сайте Emacs Rocks http://emacsrocks.com/e13.html .

0

Вы можете скопировать и вставить его в электронную таблицу ... затем разделить строки на столбцы через разделитель ... когда столбцы обозначены как «Город, Страна - Название аэропорта (код аэропорта)» ... просто добавьте еще один столбец с повторяющейся строкой: => и скопируйте в него столбец « Код аэропорта ».

При этом это может показаться так:

"Город, Страна - Название аэропорта (код аэропорта)" => "Код аэропорта"

Просто скопируйте и вставьте все содержимое таблицы в блокнот или любой другой текстовый редактор для Mac ... и в этом редакторе замените TAB ПРОБЕЛОМ или НИЧЕГО, в соответствии с требованиями кода.

вам потребуется только программное обеспечение для работы с электронными таблицами, например MS Excel, и текстовый редактор, например блокнот. Я пользователь Windows, так что не знаю о программах для Mac ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .