LeetCode one-liner bash script problems and answers
Word Frequency
Write a bash script to calculate the frequency of each word in a text file words.txt
.
For simplicity sake, you may assume:
words.txt
contains only lowercase characters and space ‘ ‘ characters.- Each word must consist of lowercase characters only.
- Words are separated by one or more whitespace characters.
Assume that words.txt
has the following content:
the day is sunny the the
the sunny is is
Your script should output the following, sorted by descending frequency:
the 4
is 3
sunny 2
day 1
Suggestions:
egrep -o "\b[[:alpha:]]+\b" words.txt |sort -n |uniq -c |sort -k1nr |awk '{print $2, $1}'
Valid Phone Numbers
Given a text file file.txt
that contains a list of phone numbers (one per line), write a one-liner bash script to print all valid phone numbers.
You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)
You may also assume each line in the text file must not contain leading or trailing white spaces.
Assume that file.txt has the following content:
987-123-4567
123 456 7890
(123) 456-7890
Your script should output the following valid phone numbers:
987-123-4567
(123) 456-7890
Suggestions:
grep -E '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt
Transpose File
Given a text file file.txt
, transpose its content.
You may assume that each row has the same number of columns, and each field is separated by the ‘ ‘ character.
If file.txt
has the following content:
name age
alice 21
ryan 30
Output the following:
name alice ryan
age 21 30
Suggestions:
for x in $(seq 1 $(awk 'END{if (NR>NF) print NF;else print NF}' file.txt));do A=$(cat file.txt|cut -d ' ' -f $x|while read L;do echo -n "$L ";done);echo ${A% };done
Tenth Line
Given a text file file.txt
, print just the 10th line of the file.
Assume that file.txt has the following content:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Your script should output the tenth line, which is:
Line 10
Suggestions:
sed -n '10p' file.txt
Disclaimer
- License under
CC BY-NC 4.0
- Copyright issue feedback
me#imzye.me
, replace # with @ - Not all the commands and scripts are tested in production environment, use at your own risk
- No privacy information is collected here