利用Shell 对固定格式的txt文件数据进行脱敏

文档格式如下图,所有列都是以“|” 进行分割,需要对指定列进行替换脱敏,

 

尝试用 sed 来进行替换,但多次尝试以后无果,原因在于,需要处理的数据多列,数据有中文,数字还有其他的格式,

替换必须要有一个原始数据,所以sed无法满足我的需求;

尝试使用awk来对数据进行查找替换,最后也是多次尝试无果,虽然能够把指定列查出来,但是无法完成替换,技术有限

最后,想了一个折中的办法,既然替换不行,那我就把不需要脱敏的数据列,全提出来,把需要脱敏的列用* 米字符代替,最后组成一个新的文件,最后问题就解决啦

cat test.txt|awk -F "|" '{print $1"|" $2"|" $3"|" "*|" $5"|" $6"|" "*|" $8"|" "*|" "*|" $11"|" $12"|" $13"|"$14"|"$15"|"$16"|"$17"|"$18"|"$19"|"$20"|"$21"|"$22"|"$23"|"}' > output.txt

替换前

利用Shell 对固定格式的txt文件数据进行脱敏

 

替换后

利用Shell 对固定格式的txt文件数据进行脱敏

相关文章:

  • 2021-04-10
  • 2021-05-20
  • 2022-12-23
  • 2022-02-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-14
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
相关资源
相似解决方案