
我有一個包含世界上幾乎所有機場的 .txt 檔案。每條線路都是不同的機場,線路的格式如下:城市、國家 - 機場名稱(機場代碼)
IE:
Le Mans, France - Arnage (LME)
Detroit, USA - Willow Run (YIP)
San Francisco, USA - San Francisco International (SFO)
(完整的.txt在這裡:http://snipt.org/AnT8)
但我想要這種格式:“城市、國家 - 機場名稱(機場代碼)”=>“機場代碼”
(是的,帶引號,用於 PHP 編碼)
IE:
"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/gawk
awk -F '[()]' '{print "\""$0"\" =>\""$2"\""}' list.txt
@evilsoup 的 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 Rocks 網站上http://emacsrocks.com/e13.html。
答案4
您可以將其複製並貼上到電子表格中...然後透過分隔符號將行分成列...當列已製作為“城市、國家 - 機場名稱(機場代碼)”....簡單地添加帶有重複字串的另一列:=>並複製“機場代碼「 接下來的專欄..
這樣一來,它可能看起來像這樣:
“城市、國家 - 機場名稱(機場代碼)”=>“機場代碼”
只需將所有表格內容複製並貼上到記事本或任何適用於 Mac 的文字編輯器中...然後在該編輯器中,根據您的程式碼要求,將 TAB 替換為空格或什麼都不替換。
你只需要一個像 MS Excel 這樣的電子表格軟體,和一個像記事本這樣的文字編輯器。