
У меня есть файл .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"
Как я могу сделать это сразу?
решение1
Они работают «из коробки» на Linux, OSX и т. д.:
Перл
perl -ne 'chomp; /\((.+?)\)/; print "\"$_\" => \"$1\"\n"' list.txt
еще один Perl, здесь используется магия:
perl -ane 'print "\"@F\" => \"$F[$#F]\"\n"' a
awk/глазеть
awk -F '[()]' '{print "\""$0"\" =>\""$2"\""}' list.txt
@evilsoup's sed
sed -e 's/(\(...\))/(\1)" => "\1"/' -e 's/^/"/' list.txt
Ни один из них не изменяет исходный файл, используйте -i
для Perl и sed
параметры или перенаправьте вывод, если вы хотите сохранить:
command list.txt > new_list.txt
решение2
Вы также можете использовать графический текстовый редактор с возможностью многострочного редактирования, напримерВозвышенный текст.
- Выделите все с помощью CmdA, затем включите режим редактирования строк с помощью ShiftCmdL.
- Перейдите в конец строки с Cmd→и скопируйте код аэропорта в скобках. Затем заключите строку в кавычки, добавьте
=>
и вставьте код еще раз. - Нажмите Esc, чтобы выйти из режима редактирования строки.
По сути, вы можете сделать то же самое, что и с одной линией.
решение3
Emacs имеет возможность использовать несколько курсоров. Таким образом, вы можете напрямую редактировать все строки одновременно. Видео по настройке находится на сайте Emacs Rockshttp://emacsrocks.com/e13.html.
решение4
Вы можете скопировать и вставить его в электронную таблицу... затем разбить строки на столбцы с помощью разделителя... когда столбцы будут созданы как«Город, Страна - Название аэропорта (код аэропорта)»... просто добавьте еще один столбец с повторяющейся строкой:=>и скопируйте "Код аэропорта"колонка к ней следующая..
При этом это может выглядеть так:
«Город, Страна - Название аэропорта (код аэропорта)» => «Код аэропорта»
Просто скопируйте и вставьте все содержимое таблицы в блокнот или любой другой текстовый редактор, который у вас есть для Mac... и в этом редакторе замените TAB на ПРОБЕЛ или НИЧЕГО, в соответствии с требованиями вашего кода.
Вам понадобится только программное обеспечение для работы с электронными таблицами, например MS Excel, и текстовый редактор, например Notepad. Я пользователь Windows, поэтому не знаю о программном обеспечении для Mac...