Jeg har en stor 200 MB mailhistorik tekstfil, og jeg skal finde en linje med følgende struktur:

lastname name streetname numberOfHouse postalcode cityname 

nemlig:

Arthur Dent Galaxy 7 74369 Third Orbit 

Bemærk : Postnummeret indeholder altid 5 tal, og bynavnet kan bestå af et eller to ord, der indeholder store og små bogstaver i alfabetet. Efternavn, navn, gadenavn er kun et ord, der indeholder store og små bogstaver i alfabetet. Der er ingen yderligere oplysninger givet.

Min løsning hidtil returnerer intet, og der vises simpelthen en ny promptlinje:

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" 

Et uddrag af filen:

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 

Spørgsmål : Var kunne være min fejl?

Kommentarer

  • Selv med -P -flagget, betyder grep ikke ' t udfør multiline-matches AFAIK (i det mindste ikke uden hacks såsom at slurpe hele filen ved at behandle den som nul-afsluttet). Indeholder dit uddrag faktisk et match? Hvis ikke, er det ' til begrænset brug som testtilfælde.
  • Jeg har opdateret mit indlæg, så der vil være en match
  • Hvor ' matcher? Vis os din ønskede output, som jeg bad dig om at gøre i chat.
  • @terdon det er der. linjen viser nemlig den fremhævet. Kampen er midt i uddraget. ' Arthur Dent Galaxy 7 74369 Tredje bane '
  • Og hvordan definerer du gadenavne og -numre? Du har Galaxy 7 men hvad med 4 Privet drive eller All hail johnny lane 14-12 osv.?

Svar

For det første er der ingen matchende data i din fil, som du viser her. Og forudsat at du fandt filen med den slags data, du har til hensigt at kigge efter, skal du påberåbe grep med indstillingerne:

grep -zoP 

-z behandler filen som en enorm streng. -o får dig bare den matchende del -P vil gøre det muligt for Perl-regex-motoren og derved få grep til at forstå den slags regex, du har der.

Kommentarer

  • Jeg har opdateret mit indlæg, så de data, jeg leder efter, er derinde.
  • ja, det virker. Har jeg ret i, at der ikke er nogen chance for at få filnummerets linje? Fordi ' -nr ' bare udskriver 1 som et resultat, der er forkert
  • Jeg ville bare være sikker på . Hvis filen er ensidig, er \n ikke længere nødvendigt, er det ikke '? For så vidt jeg ved \n betyder linjeskift. På den anden side fungerer grep-kommandoen ikke uden \n

Svar

Postnummeret ser noget unikt ud, så hvis der ikke er noget i filen, der ligner en, men ikke” t, kunne vi bare grep -B for at få de foregående linjer :

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

dvs. se efter fem cifre og et mellemrum i starten af linjen, udskriv linjen og to foregående. (-B er til “før”, -A til “efter”, -C til kontekst eller begge retninger.)

Svar

Jeg foreslår at bruge pcregrep i stedet for almindelig grep til dette f.eks.

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" 

Hvis du vil have linjenummeret, så pcregrep understøtter den samme -n mulighed som grep f.eks.

$ 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 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *