【问题标题】:Find credit card numbers and replace characters at set positions查找信用卡号并在设定位置替换字符
【发布时间】:2016-04-17 06:10:03
【问题描述】:

我有一个包含信用卡号(16 个字符)的文件,我想找到它们并将除前 6 个和后 4 个数字之外的所有内容替换为“X”。

sed -i 's/\([345]\{1\}[0-9]\{3\}\|6011\)\{1\}[ -]\?[0-9]\{4\}[ -]\?[0-9]\{2\}[-]\?[0-9]\{2\}[ -]\?[0-9]\{1,4\}/\XXXXXX/g' foobar.csv

将轻松找到文件中包含的所有信用卡并将其替换为“XXXX”

但我想找到信用卡并将字符串的第 7-12 个字符替换为“X”,因此该文件将包含像 123456XXXXXX7890 这样被屏蔽的信用。

示例输入行:

jam peanut boat handbag on the shore in Tuesday 4548640040302006 in the morning jimmy

示例输出行:

jam peanut boat handbag on the shore in Tuesday 454864XXXXXX2006 in the morning jimmy

【问题讨论】:

  • 请在您的问题中添加示例输入和该示例输入所需的输出。
  • 示例输入行:“周二早上岸上的果酱花生船手提包 4548640040302006 早上吉米” 示例输出行:“周二早上岸上的果酱花生船手提包 454864XXXXXX2006 吉米”跨度>

标签: sed replace position credit-card anonymize


【解决方案1】:

尝试使用 GNU sed 来匿名化信用卡号:

sed -i 's/\(\([345]\{1\}[0-9]\{3\}\|6011\)\{1\}[ -]\?[0-9]\{2\}\)[0-9]\{2\}[ -]\?[0-9]\{2\}[-]\?[0-9]\{2\}[ -]\?\([0-9]\{1,4\}\)/\1XXXXXX\3/g' file

输入:

星期二早上在岸上果酱花生船手提包 4548640040302006 吉米 星期二 454864XXXXXX2006 早上在岸边的果酱花生船手提包 jimmy

输出到文件:

星期二 454864XXXXXX2006 早上在岸边的果酱花生船手提包 jimmy 星期二 454864XXXXXX2006 早上在岸边的果酱花生船手提包 jimmy

【讨论】:

    猜你喜欢
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多