Нам нужно скрыть номера кредитных карт. Маскировать все, кроме последних 4 цифр. Я пытаюсь использовать SED. Поскольку длина номера кредитной карты варьируется от 12 цифр до 19, я пытаюсь написать регулярное выражение. Получаемый код получит строку. Если он содержит String формы «CARD_NUMBER = 3737291039299199», он будет маскировать первые 12 цифр. Проблема в том, как написать регулярное выражение для кредитной карты от 12 до 19 цифр? Если я напишу еще одно выражение для 12 цифр, это не сработает. Это означает, что для 12-значной кредитной карты первые 8 цифр должны быть замаскированы. для 15-значной кредитной карты первые 11 цифр должны быть замаскированы.регулярное выражение в sed для маскировки кредитной карты
while read data; do
var1=${#data}
echo "Length is "$var1
echo $data | sed -e "s/CARD_NUMBER=\[[[:digit:]]\{12}/CARD_NUMBER=\[\*\*\*\*\*\*\*\*/g"
done
Спасибо, но это дается error- $ эхо «4664738575834567» | sed -e: a -e "s/[0-9] \ ([0-9] \ {4 \} \)/\ * \ 1 /: ta" "Неизвестный вариант для 's' – user269723
Извините, – Beta
Привет, спасибо, но небольшая проблема. Ввод - это что-то вроде: «CARD_NUMEBR = [72727272727272727]» и вывод должен быть «CARD_NUMEBR = [************] 3737] «В приведенном выше выражении я пытаюсь установить CARD_NUMEBR [но не работает.] – user269723