Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Help to split

by 2teez (Vicar)
on Mar 16, 2013 at 05:10 UTC ( [id://1023810]=note: print w/replies, xml ) Need Help??


in reply to Help to split

Hi semenych,
"...tell me about my mistakes..."

  • First of all, it good practice to use strict and warnings in your scripts.
  • Using the open function in Perl, you should always check the return, in case it fails. The same should goes for the close function
"...and help me this my work.."
After your file was opened, using a "while" loop read your file one at a time. Then use regex, "pick out" the portion of the line you wanted like so:
use warnings; use strict; while (<DATA>) { chomp; print $1, $/ if /:(\w+?)\s\w+?,/; } __DATA__ bsulli03:*:32452:5002:barry sullivan,l230,555-6666,:/students/bsulli03 +:/usr/bin/ksh sbarto22:*:32453:7990:sally bartok,l134,444-3333,:/students/sbarto22:/ +usr/bin/ksh sbarto25:*:32453:7990:sparky bartok,l135,444-4444,:/students/sbarto25: +/usr/bin/ksh sbarto35:*:32453:7990:sammy bartok,l137,444-5555,:/students/sbarto35:/ +usr/bin/ksh sdemar03:*:32454:7990:sally demartra,S23,233-5234,:/students/sdemar03: +/usr/bin/ksh sdemar05:*:32454:7990:bill demartra,l123,555-1234,:/students/sdemar05: +/usr/bin/ksh singl04:*:32455:5002:bart singleton,l134,555-1235,:/students/singl:/us +r/bin/ksh gomez:*:32456:7990:bill gomez,l433,535-6666,:/students/gomez:/usr/bin/ +ksh bolde01:*:32457:7990:bart bolden,l444,444-1234,:/students/bolde:/usr/b +in/ksh reaga09:*:32458:7990:cal reagan,l455,333-1234,:/students/reaga:/usr/bi +n/ksh liu44:*:32460:5002:tom liu,s213,222-1234,:/students/liu:/usr/bin/ksh ulano:*:32462:7990:sally ulanouskay,s233,222-9999,:/students/ulano:/us +r/bin/ksh tran56:*:32463:5002:phuong tran,s111,444-8888,:/students/tran:/usr/bin +/ksh mehr:*:32464:5003:cindy mehr,c113,555-8888,:/students/mehr:/usr/bin/ks +h ramos:*:32449:7990:olivo ramos,l454,999-0000,:/students/ramos:/usr/bin +/ksh brown:*:32459:7990:bart bro,l477,888-7654,:/students/brown:/usr/bin/ks +h mojic:*:32461:7990:celia mojica,c242,555-7654,:/students/mojic:/usr/bi +n/ksh fisher:*:2915:208:cindy fisher,l312,478-0371,:/users/fisher:/usr/bin/k +sh bsulli02:*:32452:5002:bart sullivan,l130,555-5555,:/students/bsulli02: +/usr/bin/ksh
Note:Am assuming that the first names are the names that come first in the full names.
Output:
barry sally sparky sammy sally bill bart bill bart cal tom sally phuong cindy olivo bart celia cindy bart

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Replies are listed 'Best First'.
Re^2: Help to split
by semenych (Initiate) on Mar 17, 2013 at 04:11 UTC

    Thanks,2teez

      Or more simply, without going for exact perl. You could use:
      perl -e 'print `cat file|cut -d "," -f1|cut -d ":" -f5|cut -d " " -f1` +;'
      (Replace file with exact name of your file and/or absolute path). Output: barry sally sparky sammy sally bill bart bill bart cal tom sally phuong cindy olivo bart celia cindy bart
Re^2: Help to split
by semenych (Initiate) on Mar 17, 2013 at 04:15 UTC

    2teez, unfortunately I have not learnt regex yet. Could you please advice how to do it without regexes, maps and other staff, just using one or more split

      "..Could you please advice how to do it without regexes, maps and other staff, just using one or more split.."
      The answer you seek has been given to you in one of the Athanasius's post. Please, check again.

      Hope, this helps

      If you tell me, I'll forget.
      If you show me, I'll remember.
      if you involve me, I'll understand.
      --- Author unknown to me

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1023810]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2024-04-20 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found