Question: UNIX SCRIPTING Write 2 shell scripts in bash and perl ( phonebook.bash and phonebook.pl ) to maintain a phonebook as specified below. Program specification Input:
UNIX SCRIPTING
Write 2 shell scripts in bash and perl ( phonebook.bash and phonebook.pl ) to maintain a phonebook as specified below.
Program specification
Input: A file of records containing the following fields separated by:
1. FirstName LastName
2. Home Phone Number: (desired format is xxx-xxx-xxxx)
3. Mobile Phone Number: (unique for every person, i.e. the primary key)
4. Address: Street address, City, State and Zip
5. Birth date: MM/DD/YYYY
6. Salary
A sample text file with the desired format:
Steve Blenheim:238-923-7366:238-934-7865:95 Latham Lane, Easton, PA 83755:11/12/56:20300 Betty Boop:245-836-8357:245-876-7656:635 Cutesy Lane, Hollywood, CA 91464:6/23/23:14500 Igor Chevsky:385-375-8395:385-333-8976:3567 Populus Place, Caldwell, NJ 23875:6/18/68:23400 Norma Corder:397-857-2735:397-857-7651:74 Pine Street, Dearborn, MI 23874:3/28/45:245700 Jennifer Cowan:548-834-2348:548-888-6667:583 Laurel Ave., Kingsville, TX 83745:10/1/35:58900 Jon DeLoach:408-253-3122:408-222-1234:123 Park St., San Jose, CA 04086:7/25/53:85100 Karen Evich:284-758-2857:284-777-3666:23 Edgecliff Place, Lincoln, NB 92086:7/25/53:85100 Fred Fardbarkle:674-843-1385:674-222-4567:20 Parak Lane, DeLuth, MN 23850:4/12/23:780900 Lori Gortz:327-832-5728:327-833-3345:3465 Mirlo Street, Peabody, MA 34756:10/2/65:35200 Paco Gutierrez:835-365-1284:835-333-1212:454 Easy Street, Decatur, IL 75732:2/28/53:123500 Ephram Hardy:293-259-5395:293-222-3334:235 CarltonLane, Joliet, IL 73858:8/12/20:56700 James Ikeda:834-938-8376:834-999-1112:23445 Aster Ave., Allentown, NJ 83745:12/1/38:45000 Barbara Kertz:385-573-8326:385-555-8321:832 Ponce Drive, Gary, IN 83756:12/1/46:268500 Lesley Kirstin:408-456-1234:408-222-2345:4 Harvard Square, Boston, MA 02133:4/22/62:52600 William Kopf:846-836-2837:846-888-8761:6937 Ware Road, Milton, PA 93756:9/21/46:43500 Sir Lancelot:837-835-8257:837-334-1212:474 Camelot Boulevard, Bath, WY 28356:5/13/69:24500 Jesse Neal:408-233-8971:408-234-9812:45 Rose Terrace, San Francisco, CA 92303:2/3/36:25000 Zippy Pinhead:834-823-8319:834-888-2343:2356 Bizarro Ave., Farmount, IL 84357:1/1/67:89500 Arthur Putie:923-835-8745:923-812-6789:23 Wimp Lane, Kensington, DL 38758:8/31/69:126000 Jose Santiago:385-898-8357:38 Fife Way, Abilene, TX 39673:1/5/58:95600 Tommy Savage:408-724-0140:408-777-0121:1222 Oxbow Court, Sunnyvale, CA 94087:5/19/66:34200 Yukio Takeshida:387-827-1095:387-888-1198:13 Uno Lane, Ashville, NC 23556:7/1/29:57000 Vinh Tranh:438-910-7449:438-999-0000:8235 Maple Street, Wilmington, VM 29085:9/23/63:68900
Output:
The program should provide the user with the following menu options:
- Listing of records in alphabetical order of first name or last name
- Listing of records in reverse alphabetical order of first name or last name
- Search for a record by Last Name and print out the result.
- Search for a record by birthday in a given year or month.
Please also include:
- Insert Record (of course, at the correct location in the sorted list)
- Delete Record from the list by providing the mobile phone number or last name
- Write out the sorted records to the same file before exiting the script.
If not using the sample datafile, then create a text file containing minimum 10 records in the specified format. Your script should reject any record(s) having illegal values, e.g. phone numbers in incorrect format or incorrect zip codes etc., either upon reading the file first or upon a new entry. If you cannot implement format checking for fields due to time constraints, please go ahead and submit what you have.
Feel free to add any other field(s) that you might think is/are important for you to have in a phone book.
You can also add more menu options (functionality) as desired other than the ones mentioned in the next section.
Write your own functions (if allowed by the shell, to do the various menu options)
Programming considerations
Properly document your script by having ample comments throughout the different parts of your scripts
FAQs
Q: Can we have multiple entries in the phone book?
A: No, you cannot, unless one of the fields is different.
Q: What is an illegal zip?
A: Any integer that is less or more than 5 digits long.
Q: What is an illegal phone number?
A: One that does not have 10 digits or is not in the correct format using the hyphens in the correct places. Hence, currently international numbers are not included in the address book.
Q: Do I have to check for illegal address (like incorrect state)?
A: No, but if you can that would be fabulous.
Q: Do I have to check for birth date being a valid date?
A: No, but again, surely try to implement it and I would highly recommend doing it.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
