Ich habe eine große Textdatei mit 200 MB E-Mail-Verlauf und muss eine Zeile mit der folgenden Struktur finden:

lastname name streetname numberOfHouse postalcode cityname 

nämlich:

Arthur Dent Galaxy 7 74369 Third Orbit 

Hinweis : Die Postleitzahl enthält immer 5 Zahlen und der Name der Stadt kann aus einem oder zwei Wörtern bestehen, die Groß- und Kleinbuchstaben des Alphabets enthalten. Nachname, Name, Straßenname sind nur ein Wort, das Groß- und Kleinbuchstaben des Alphabets enthält. Es werden keine zusätzlichen Informationen angegeben.

Meine bisherige Lösung gibt nichts zurück und es wird einfach eine neue Eingabeaufforderungszeile angezeigt:

grep -P "[a-zA-Z]+ [a-zA-Z]+\n[a-zA-Z]+ [0-9]+\n\d{5} [a-zA-Z]+ [a-zA-Z]+" "/home/jublikon/Downloads/emails" 

Ein Auszug der Datei:

Received: from outmail-1.st1.spray.net (outmail-1.st1.spray.net [212.78.202.120]) by pigsty.hamjudo.com (8.12.1/8.12.1/Debian -5) with ESMTP id g58Jd3Y9015868 for ...; Sat, 8 Jun 2002 15:39:10 -0400 Date: Sat, 8 Jun 2002 15:39:03 -0400 Received: from lycos.co.uk (newwww-2.st1.spray.net [212.78.202.12]) by outmail-1.st1.spray.net (8.8.8/8.8.8) with SMTP id VAA09339; Sat, 8 Jun 2002 21:36:57 +0200 (DST) Posted-Date: Sat, 8 Jun 2002 21:36:57 +0200 (DST) From: Sandra Savimbi [email protected] To: [email protected] Message-ID: [email protected] X-Mailer: Caramail - www.caramail.com X-Originating-IP: [213.251.169.58] Mime-Version: 1.0 Subject: Kindly Get Back To Me Please. Content-Type: multipart/mixed; Case there are no risks involved. REPLY ASAP. With regards. Dr.Raymond Graham(JP). TEL 00-228-949-7287. _____________________________________________________________ To meet someone --- http://www.domeconnection.com Get free new car price quotes http://autos.yahoo.com </pre><hr> Another similar one from September 17 (mail headers not provided]</p> <pre> FROM: COL.ZIZO GIRAI(RTD)DEMOCRATIC REPUBLIC OF NIGERIA, SECURED AS CREDIT/PAYMENT TO A FOREIGN ACCOUNT FOR US ALL. BY OUR APPLICATION, IT WILL BE SET ASIDE FOR INCIDENTAL EXPENSES (INTERNAL AND EXTERNAL) BETWEEN BOTH PARTIES IN THE TRANSFER, AND IN VIEW OF OUR SONS DUKE AND BASHER OUT OF THE RELEASE OF THE COMMUNITIES AND PEOPLE IN POWER, THE FERDERAL ARMY WAS SENT TO THE MANAGER OF UNITED NATIONS EVACUATION TEAM WHERE WE SHALL FINALLY TRANSFER THE TOTAL AMOUNT FOR YOUR ASSISTANCE AS TO MAINTAIN THE ABSOLUTE SUPPORT OF ALL PREVIOUS MILITARY GOVERNMENTS.CONTACT SHOULD BE CONFIDENTIAL. Best Regards, Dr. Mrs. Marian Sani Abacha. My colleagues and I really thank God that you keep your winning information confidential until you receive this money, as long as the original contractor, leaving behind his 11 year old son, Mike,who managed to sneak out of Congo, I immediately decided to contact you, and this is why I need a reliable foreign non-company account to receive such funds. More so, we are assuring you of the total sum, 60% of the announcement today 28th of February 2004. After this date, all funds will be for you. Firstly you can request for the reconciliation of all claims that have not met before.I maintain the theory that business is just what we require you to understand that the money is my reason for contacting you as a family treasure. It is our hope that you will provide will then proceed to Netherlands is safe in doing this transaction as this is due to the ownership of the witch-hunting search light of the country. I shall be revealed to me at once via email as stated above. Therefore, to enable us provide a bank in 1990 and since 1993 nobody has operated on this account again, after going through the National Oil Nigeria PLC (N/Oil) and member of my father,and with the time of writing, no next of kin was fruitless. Itherefore made further investigation and discovered that Mr. Barry Kelly did not tell people or your Company will retain 20% of the application that you will remain honest to me as soon as we have some questions or refuse the money while the rest and do not know or ever seen before, but I want to transfer this money abroad in a position to make me not to tell anybody except my mother receive this fund since no one else we can transfer this money to your response as soon as possible. Congratulations once more from our members of staff and thank you for being part of your winning,you will take part in our promotional program. Note: Anybody under the age of 30, or a reliable and honest person to handle this transaction would be released and transferred the money a. Regards, Sandra Savimbi Arthur Dent Galaxy 7 74369 Third Orbit Date: Sun, 9 Jun 2002 05:23:27 +0200 From: IBRAHIM ALI [email protected] To: [email protected] Subject: URGENT FOR INVESTMENT From the Desk of MR IBRAHIM ALI NIGERIAN NATIONAL PETROLEUM CORPORATION LAGOS NIGERIA. ATTN: MANAGING DIRECTOR(CEO) . Your contact was given to me by a friend who was once on diplomatic mission in your country upon my enquiry for a reliable firm to engage in business. The same guaranteed your reliability and trust-worthiness in business matters. I therefore wish to explain this lucrative business intention for our mutual benefit, though I did not let that friend have the real Of it"s swiftness and confidentiality. Also, your area of specialization is not money from the very several, but due to the actualisation of the on-going liquefied Natural Gas Resources for domestic use and Export Market. In 1995, a consortium of Engineering firms, Technip, Snamprogetti, M. W. Kellog and Japan Gas Corporation of South Africa does not allow us to commence the process of collecting your prize. You are also advised to keep this award top secret because of our funds from the project. We now want you to stand in as the right channels of executing this venture successfully. And as civil servants and we will be entitled to 15% of the Monroe`s family or relatives but to no Avail. Should you be willing to pay it into your account. I will send to you as my late husband had, [wealth] belongs to one of his available foreign next of kin,the company awaits my coming for the Total sum for all kinds of expenses incurred in the bank has been processed and your money remitted to your nominated account overseas, while 5% will be carefully worked out with the late beneficiary or for high profile investment purposes before his death. The last installments due has been made for the family, the family intend to use it for our mutual benefit. REMUNERATION. We have decided to contact his Next of kin to Mr. Barry Kelly did not bear any male child [heir apparent] for my future and those of us because I will give to you, while 5% will be set aside for any arising contigencies during the process of transferring. I look forward to receiving your prompt reply-BENSON OKA. __________________________________________________ Do You Yahoo!? Sign up for sake of unfree environment.during my brother"s stay in Sierra-Leone was no where to be kept aside to defray all expenses that might be of great essence in this transaction through the International Telephone Operator or (AT&T) when lines are busy at any time, upon receipt of your lottery winningbelongs to your country during a domestic flight on February 24, 1999. Until his death months ago in Kenya Air Bus (A310 - 300) Flight Kq430, Banked with us or our designated agent. Congratulations once again from all our staffs and thanks for being part of our end of the Government. I was able to manage whatever business venture you deem fit to use the funds in our lottery promotional program. held on the 24th of January 2004. Your e-mail address attached to the expiration of 5 (five) years, the money wisely while i go back to me your full names or in the land dispute in my Bank. This sum of money coded for safe keeping. I will regularize all the white-owned farms for his money because we are going to come over and put claims for this transaction. I have to entrust my futu re and that is so traumatized, I have been able to claim this fund to his forwarding address but got reply. Regards, IBRAHIM ALI the Desk Subject: HE CARES FOR THOSE WHO TRUST IN HIM Date: Mon, 10 Jun 2002 22:28:24 +0200 From: Mrs Rose Sankoh [email protected] Reply-To: Mrs Rose Sankoh [email protected] To: [email protected] HE CARES FOR THOSE WHO TRUST IN HIM FROM: MRS. ROSE SANKOH E-MAIL: [email protected] Dearest, I want to confide in you knowing that you are in the vineyard of God and you may not have the mind to do otherwise when it finally materialise. With due respect and humility I write you this letter with the belief that you would be very much obliged to assist us. Since we have no place or IN SOUTH AFRICA. We would file a claim to reflect payment and we hope to use your company"s name to apply for the proper channels. Be assured that this money within a very strong Assurance and guarantee that our conversation can be assumed that the incumbent President Charles Taylor Liberia,a country in cash credited to file REF N: EGS/2551256003/03. This is why I am convinced that you could accept to assist us in your hands if you are capable and fit to use you as my partner will handle it with utmost secrecy and confidentiality that it is our hope that we could transfer the account died without a written or oral WILL and to make the payment of Contract jobs done for security reason, Furnish me with your private telephone and fax number full name and account,where the money although the war against the legitimate Government in my possession and I am writing this letter to you, additional information before we fly to your country . This money was personally kept by then President, LAURENT KABILA, without the consent of this, your US$2,500,000.00 (Two million,Five Hundred thousand United States dollars)in one security company insured in your REFERENCE FILE. Due to the point, this money will be well protected. This business proposal for you. On December 6, 1999, a Foreign Account requiring Maximum Confidence. THE PROPOSITION: A Foreigner, a french, Late Engr.Jean claude Pierre (Snr) a merchant in Dubai, in the Netherlands from South Africa. We will then come over and put to use. My hopes was turn down as it came with the responsibility to ensure maximum confidentiality and trust is my share of the American government which has already done this deal have been exercising patience for this project can either be personal, company or an offshore payment account of yours,where it can be able to secured some Reasonable amount of money out urgently it will be willing to assist me and 40% to you, additional information (Bio data) on Mr. Bantam. I am the only person that will enable me to give you my word that you promise to give you instructions on what I was desperately looking for a liberation movement like UNITA hence the money in company, I have with me, please contact your file/claim officer: GARVIN MARCUS. FOREIGN SERVICE MANAGER, Email : [email protected] Telephone :+31-620-885-334. For due processment and remittance of your discreetness and ability in transaction of this transaction. Please, your assistance by acting as our new found parent/family and will meet up with them in the 1st category, you have therefore been delegated as a surprise because we are prohibited by the Rebels of R.U.F that has been processed and the distribution of it will enable me fax to you by fax or email at any time. The remainder of the contractors awaiting payment for consultancy services rendered by you. If this proposal is 100% risk free as we have identified a huge sum of $18,000,000 USD in cash, not bankable, which retained. Regards, Mrs Rose From: "alex princewill" [email protected] To: [email protected] Sent: Tuesday, June 11, 2002 1:51 PM Subject: INVESTMENT PROPOSAL/ TO AUDITING AND ACCOUNT UNIT. FORIEGN REMITTANCE DEPT. UNION TOGOLAISE DU BANQUE LOME-TOGO.IN WEST AFRICA. Attn, I am Mr.Alex princewill. the director in charge of auditing and account section of Union Togolaise Du Banque Lome-Togo with due respect and regard. I have decided to contact you on a business 

Frage : Wurden könnte mein Fehler sein?

Kommentare

  • Selbst mit dem Flag -P macht grep keine ' führt keine mehrzeiligen Übereinstimmungen AFAIK durch (zumindest nicht ohne Hacks wie das Schlürfen der gesamten Datei, indem sie als nullterminiert behandelt wird). Enthält Ihr Auszug tatsächlich eine Übereinstimmung? Wenn nicht, ist es ' von begrenzter Verwendung als Testfall.
  • Ich habe meinen Beitrag aktualisiert, sodass es eine Übereinstimmung gibt
  • Wo ' ist die Übereinstimmung? Bitte zeigen Sie uns Ihre gewünschte Ausgabe, wie ich Sie im Chat gebeten habe.
  • @terdon es ist da. Die Linie zeigt es nämlich hervorgehoben. Das Match ist in der Mitte des Auszugs. ' Arthur Dent Galaxy 7 74369 Dritte Umlaufbahn '
  • Und wie definieren Sie Straßennamen und -nummern? Sie haben Galaxy 7, aber was ist mit 4 Privet drive oder All hail johnny lane 14-12 usw.?

Antwort

Erstens enthält Ihre Datei keine übereinstimmenden Daten, die Sie hier anzeigen. Angenommen, Sie haben eine Datei mit den Daten gefunden, nach denen Sie suchen möchten, sollten Sie grep mit den folgenden Optionen aufrufen:

grep -zoP 

-z behandelt die Datei als eine große Zeichenfolge. -o erhält nur den passenden Teil -P aktiviert die Perl-Regex-Engine und macht grep so verständlich, welche Art von Regex Sie dort haben.

Kommentare

  • Ich habe meinen Beitrag so aktualisiert, dass die gesuchten Daten dort sind.
  • Ja, es funktioniert. Habe ich recht, dass es keine Chance gibt, die Zeilennummer der Datei zu erhalten? Da ' -nr ' nur 1 druckt, was falsch ist
  • Ich wollte nur sicherstellen, dass dies der Fall ist . Wenn die Datei uniliniert ist, werden die \n nicht mehr benötigt, nicht wahr '? Denn soweit ich weiß, bedeutet \n Zeilenumbruch. Andererseits funktioniert der Befehl grep nicht ohne die Antwort \n

Antwort

Diese Postleitzahl sieht etwas eindeutig aus. Wenn also nichts in der Datei ist, das wie eine aussieht, aber nicht“ t „ist, können wir einfach grep -B die vorhergehenden Zeilen abrufen :

$ grep -B2 -Ee "^[0-9]{5} " spam Arthur Dent Galaxy 7 74369 Third Orbit 

dh Suchen Sie nach fünf Ziffern und einem Leerzeichen am Zeilenanfang, drucken Sie diese und zwei vorherige Zeilen aus. (-B steht für „vor“, -A für „nach“, -C für den Kontext oder beide Richtungen.)

Antwort

Ich würde vorschlagen, pcregrep zu verwenden anstatt einfach grep für dieses Beispiel

pcregrep -M "[a-zA-Z]+ [a-zA-Z]+\n[a-zA-Z]+ [0-9]+\n\d{5} [a-zA-Z]+ [a-zA-Z]+" "/home/jublikon/Downloads/emails" 

Wenn Sie die Zeilennummer möchten, dann pcregrep unterstützt dieselbe -n -Option wie grep zB

$ pcregrep -nM "[a-zA-Z]+ [a-zA-Z]+\n[a-zA-Z]+ [0-9]+\n\d{5} [a-zA-Z]+ [a-zA-Z]+" emails 66:Arthur Dent Galaxy 7 74369 Third Orbit 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.