有一个文本文件 nowcoder.txt,内容格式如下,中间用空格分隔。 id score 100 99 200 80 300 60 现在想进行行列转换,把数据转换成如下形式 id 100 200 300 score 99 80 60 请你用bash语言实现这个功能
id score 100 99 200 80 300 60
id 100 200 300 score 99 80 60
考点: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年秋招-京东-技术通用岗位-第十批笔试。