我需要解析包含數百個記錄的文本文件,每個記錄跨越多於1行。我是Python的新手,一直試圖用幾種複雜的方式用grep和awk做到這一點,但沒有運氣。 該文件包含看起來像這樣的記錄:解析文本文件,其中每個記錄跨越多於1行
409547095517 911033 0點47分41秒C44○時47分46秒D44○點47分53秒0時47分55秒 (555)555-1212 00:47 10/31 100主街 - NW
Some_City TX 323 WRLS METRO PCS
P#122-5217 ALT#555-555-1212 LEC:MPCSI無線呼叫Q UERY呼叫者位置詢問主叫方電話#*
真的,如果我可以將這些多行記錄精簡爲每條記錄1行,就可以做所有我需要的。每條記錄總是以「40」開始,或者我可以讓9110指示開始,因爲這些記錄始終在那裏,並且在40開始時在線開始。我使用了十六進制編輯器,發現我可以刪除所有換行(十六進制0D0A),但這並不比手動編輯文件和程序更好,我不需要刪除每個記錄的最後一個。一些記錄將只有2行,但大多數將是5這樣的。
是否有一種方式蟒蛇或否則concatonate構成一條記錄行成40行或更好的選擇,其中9110表示記錄的開始?
任何想法或指針將不勝感激。我有python和一個好的IDE,我很好用grep,但發現但學習awk(不要笑)...
我不得不承認,我正在運行windows並使用Gawk來嘗試做這項工作,但我已經嘗試了全部和部分地理解它。即使閱讀「http://www.gnu.org/software/gawk/manual/gawk.html」,但仍然沒有得到它。我會繼續嘗試。但是,我會研究這個... – James
NR> 1 &&/^ [0-9] {8}/is:如果讀取的記錄數大於1,並且該行以一串數字開始(8) ,打印一個換行符。 –
否則打印新文件的同一行上的每條記錄。 –