Редактировать все строки одновременно
У меня есть файл.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 ответа
Они работают из коробки на Linux, OSX и т.д.:
Perl
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
Вы также можете использовать графический текстовый редактор с возможностями многострочного редактирования, например, Sublime Text.
- Выберите все с помощью CmdA, затем включите режим редактирования строки с помощью ShiftCmdL.
- Перейдите в конец строки с помощью Cmd→ и скопируйте код аэропорта в скобках. Затем оберните строку в кавычки, добавьте
=>
и вставьте код снова. - Нажмите Esc, чтобы выйти из режима редактирования строки.
В общем, вы можете сделать то же самое, что и с одной строкой.
Emacs имеет возможность использовать несколько курсоров. Таким образом, вы можете напрямую редактировать все строки одновременно. Видеоролик об этом можно найти на веб-сайте Emacs Rocks http://emacsrocks.com/e13.html.
Вы можете скопировать и вставить его в электронную таблицу... затем разбить строки на столбцы с помощью разделителя... когда столбцы будут сделаны как "Город, Страна - Название аэропорта (код аэропорта)"... просто добавьте еще один столбец с помощью повторяющаяся строка: => и скопируйте в нее столбец "Код аэропорта".
С этим это может показаться так:
"Город, Страна - Название аэропорта (код аэропорта)" => "Код аэропорта"
Просто скопируйте и вставьте все содержимое таблицы в блокнот или любой другой текстовый редактор для Mac... и в этом редакторе замените TAB ПРОБЕЛОМ или НИЧЕГО, в соответствии с требованиями кода.
вам понадобится только программное обеспечение для работы с электронными таблицами, например MS Excel, и текстовый редактор, такой как блокнот. Я пользователь Windows, поэтому не знаю о программах для Mac...