In this Leetcode Valid Phone Numbers problem solution we have 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.
First Problem solution.
#!/usr/bin/env bash
while read line; do
if [[ "$line" =~ ^((\([0-9]{3}\) )|[0-9]{3}-)[0-9]{3}-[0-9]{4}$ ]]; then
echo $line
fi
done < "file.txt"
Second Problem solution.
grep '[(\d)]{3,5}[ -]?\d{3}-\d{4}$' file.txt
Third Problem solution.
grep -e "^[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}$" -e "^([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}$" file.txt
0 Comments