利用awk对身份证、手机号部分内容截取显示,隐藏敏感信息

来源:互联网 发布:刘若鹏 知乎 编辑:程序博客网 时间:2024/06/01 10:16

这周遇到一点小情况,同事需要将一份excel表格里的身份证和手机号隐去部分。

例如:

[root@localhost ~]# cat ./id张三 120108199001010023 13466666666李四 120109189901010034 13800000000

需要做到如下效果:

张三 12010819******0023 134****6666李四 12010918******0034 138****0000

于是我就在想,万一遇到紧急情况,没有excel的时候,那么我该如何在Linux中实现这个目标呢?

经过研究,可以利用awk这样写:

cat ./id | awk '{print $1" "substr($2,1,8)"******"substr($2,15)" "substr($3,1,3)"****"substr($3,8,4)}'

解释:

print $1:显示第一列,姓名。

substr($2,1,8)"******"substr($2,15):显示第二列从第一个字符起始,8位,显示星号,并显示15字符以后的所有内容(此处不可直接指定位数,否则会导致$3无法显示)。

后面的参见上一条。

阅读全文
0 0
原创粉丝点击