In this HackerRank Sed command #4 problem solution we have given n lines of credit card numbers, mask the first 1 digits of each credit card number with an asterisk (i.e., *) and print the masked card number on a new line. Each credit card number consists of four space-separated groups of four digits. For example, the credit card number 1234 5678 9101 1234 would be masked and printed as **** **** **** 1234.
Input Format
Each line contains a credit card number in the form dddd dddd dddd dddd, where d denotes a decimal digit (i.e., 0 through 9). There are a total of n lines of credit card numbers.
Constraints
1 <= n <= 20; note that the value of n does not matter when writing your command.
Output Format
For each credit card number, print its masked version on a new line.
Problem solution.
sed -e s/'([0-9]{4}) ([0-9]{4}) ([0-9]{4}) ([0-9]{4})/**** **** **** 4/'
Second solution.
sed -e 's/[0-9]+ [0-9]+ [0-9]+ ([0-9]+)/**** **** **** 1/'
Third solution.
sed -E 's/[0-9][0-9][0-9][0-9] /**** /g'
Fourth solution.
sed -r 's/([0-9]{4}s){3}([0-9]{4})/**** **** **** 2/'