您的位置:首页 > 其它

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

2017-11-04 22:47 330 查看
这周遇到一点小情况,同事需要将一份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无法显示)。

后面的参见上一条。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐