MST

星途 面试题库

面试题:Bash中awk命令在多行文本复杂数据结构处理中的应用

现有一个文本文件data.txt,其中的数据呈现出类似树形结构的多行记录,每行格式为'层级:节点名称:父节点名称'(根节点的父节点名称为root)。请使用awk命令构建该树形结构,并计算每个层级的节点数量,最后以'层级 - 节点数量'的格式输出。
44.0万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
awk -F: '{levels[$1]++; tree[$2]=$3} END {for (level in levels) {print level " - " levels[level]}}' data.txt

解释:

  1. -F::指定以冒号 : 作为字段分隔符。
  2. {levels[$1]++; tree[$2]=$3}levels[$1]++ 用于统计每个层级的节点数量,tree[$2]=$3 用于构建树形结构(不过这里构建的树形结构未直接使用在输出中,仅满足构建要求)。
  3. END {for (level in levels) {print level " - " levels[level]}}:在处理完所有输入行后,遍历 levels 数组并按指定格式输出层级和对应的节点数量。