Linux 系统中,有一个文本文件 nowcoder.txt,需要将文本中的敏感信息(邮箱)进行处理,将邮箱名除首字母外的字符用"*"进行替换,请编写Shell程序实现上述功能。
alice 25 alice@example.com bob 30 bob@example.com
alice 25 a****@example.com bob 30 b**@example.com
考点:Shell 文本处理
限制 1 秒 / 256MB | Shell 脚本题
本题是 Shell 文本处理题:给定一个文本文件 nowcoder.txt,要求用 shell 命令完成指定的文本变换或统计。
建议步骤
NR>1 跳过)。awk,逐行变换用 while read,简单替换用 sed,筛选行用 grep。常用命令速查
awk '{print $1, $2}' nowcoder.txtawk 'NR>1{...}'sed 's/old/new/g'grep -n "pattern"awk '{for(i=1;i<=NF;i++) if(length($i)>5) print $i}'awk '{for(i=1;i<=NF;i++) a[i]=a[i]" "$i} END{for(i=1;i<=NF;i++) print a[i]}'sed -E 's/([0-9]{3})[0-9]{4}([0-9]{4})/****/g'易错点
cut -d" " 会切出空字段,改用 awk 更稳。g,只替换了每行的第一处。解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2023年秋招-京东-技术通用岗位-第三批笔试。