Linux 系统中,有一个文本文件 nowcoder.txt,需要将文本中的手机号码进行处理,将手机号码转换成xxx-xxxx-xxxx的格式,请你编写Shell程序实现上述功能。
zhangsan 30 18567198188 wangwu 20 13390789090
zhangsan 30 185-6719-8188 wangwu 20 133-9078-9090
考点: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年秋招-京东-技术通用岗位-第四批笔试。