CSE 391 Homework 4: More Regular Expressions and Sed solved

$30.00

Category: You will Instantly receive a download link for .zip solution file upon Payment

Description

5/5 - (4 votes)

Task 1: Bash Shell Commands with sed:
For each of the next few problems, write a command that uses sed (preferably with the -r command-line argument to
enable full regular expressions) to search and replace text based on regular expressions. For some problems, you may
need to combine grep/egrep and sed using | . Each command should use at most one call to sed, but you may use
input/output redirection operators such as >, <, and | to combine it with other commands as needed.
Your commands should not create any temporary files during their execution. Feel free to somewhat match your
answers to the actual file you are given (e.g. only one word per line); your regexes do not have to work for a more general
case). Write your commands in on the indicated lines in the task2.sh file in the hw7 folder.
1. Output the contents of the file email.txt with all spaces replaced by dashes (-).
2. Josh and Zorah are debating which candy is better: kitkats or twix. We polled our friends and compiled the results in
candies.txt. A quick run of grep -i “kitkat” candies.txt | wc -l and grep -i “twix” candies.txt |
wc -l shows that 3 people prefer twix and 2 people prefer kitkats. Josh thinks this is a mistake, however, as people
may have answered “kit kat” (with a space), “kitkats” (with an s) or “kit kats” (with both a space and an s). Write a
sed command to replace all these variants with just the basic “kitkat”. You may assume that they are all lowercase.
3. Midterm season is upon us, and things get a little rough sometimes. Write a sed command that replaces all frowny
faces in boundless.txt with smiley faces! You may assume that all frowny faces appear with the eyes to the left of
the mouth.
4. Europeans format their dates differently than Americans. Where we would write a date such as “May 12, 2010”, they
would write it as “12 May 2010”. Output the contents of file dates.txt but with all dates changed from USA format
to European format. Don’t worry about coming up with a fancy regex to match only legal months or only legal days of
the month.
5. Convert all 10-digit phone numbers in the file phone.txt to 5-digit internal extension numbers.
(For example, Abba, Cadabra x67890 and Timss, Aaron x62859 .)
6. Give a modified version of #3 that takes the file phone.txt as input and displays the phone extension first, then 3
spaces, then the person’s name.
(For example, x67890 Abba, Cadabra and x62859 Timss, Aaron .)
7. Java programs can contain single-line // comments and multi-line /* … */ comments. Sometimes a programmer
uses a multi-line comment syntax, but the comment only occupies a single line.
Write a command that finds /* … */ comments in Questions.java that occupy a single line and replaces them
with a // comment. For example, /* hello there */ would become // hello there . (Your command
doesn’t need to modify comments where the /* isn’t on the same line as the */ . You may assume that any given line
contains at most one comment.)
1 of 2
Hints: The regular expression syntax hints from the previous section on grep also apply to sed. Also recall that some
special characters must be escaped by a \ backslash to be used in a regex pattern. Remember that putting a ‘g’ at the end
of your pattern, such as s/oldpattern/newtext/g, processes all matches on a line.
2 of 2