gpt4 book ai didi

sed - sed 中用于屏蔽信用卡的正则表达式

转载 作者:行者123 更新时间:2023-12-01 07:48:29 28 4
gpt4 key购买 nike

我们需要屏蔽信用卡号。屏蔽除最后 4 位数字以外的所有数字。我正在尝试使用 SED。由于信用卡号长度从 12 位到 19 位不等,我正在尝试编写正则表达式。以下代码将收到字符串。如果它包含形式为“CARD_NUMBER=3737291039299199”的字符串,它将屏蔽前 12 位数字。
问题是如何为信用卡写正则表达式——12 到 19 位数字?如果我为 12 位数字写另一个表达式,它不起作用。这意味着对于 12 位信用卡-前 8 位数字应该被屏蔽。对于 15 位信用卡,应屏蔽前 11 位数字。

 while read data; do
var1=${#data}

echo "Length is "$var1
echo $data | sed -e "s/CARD_NUMBER=\[[[:digit:]]\{12}/CARD_NUMBER=\[\*\*\*\*\*\*\*\*/g"
done

最佳答案

怎么样

sed -e :a -e "s/[0-9]\([0-9]\{4\}\)/\*\1/;ta"

(这在我的 shell 中有效,但您可能需要添加或删除一两个反斜杠。)这个想法是将一个数字后跟四位数字替换为星号后跟四位数字,并重复此操作直到不再触发。

关于sed - sed 中用于屏蔽信用卡的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2232200/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com