当前位置: 首页 > news >正文

awk处理xml文件封装集合变量和调用

对于Hadoop配置本地存储路径:

<property><name>dfs.datanode.data.dir</name><value>file:///dfs/data</value></property>

<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:///mnt/datadir1/data,/mnt/datadir2/data,/mnt/datadir3/data</value> 
</property> 

  • 可以严格按照XML换行和缩进格式配置,也可以配置到一行中;
  • 可以带file://前缀也可以不带;

注:在 Hadoop 的配置中,dfs.datanode.data.dir 是用来指定本地文件系统上的目录路径。默认情况下,Hadoop 会将这些路径解释为本地文件系统上的路径,因此不需要显式地添加 file:/// 前缀。

awk是行处理工具,那么如何处理这种结构化的数据块呢?并且要兼顾单行和多行配置。

其实也不难。。

sudo cat "$hadoop_conf/hdfs-site.xml" | awk '/<name>dfs.datanode.data.dir<\/name>/ {if($0!~/<value>/){getline}     #如果<name>节点上没有<value>子节点,读取下一行sub(/.*<value>/, "")           #剔除<value>及之前的空行sub(/<\/value>.*/, "")         #剔除</value>及之后的空行sub(/file:\/\//, "")           #剔除file://前缀gsub(/,/, "\n")                #将以逗号分割的多个目录换行打印print
}'

效果如下:

 

如果集合不直接打印,而是要封装成集合,以待后续处理呢?

sudo cat "$hadoop_conf/hdfs-site.xml" | awk '/<name>dfs.datanode.data.dir<\/name>/ {if($0!~/<value>/){getline}sub(/.*<value>/, "")sub(/<\/value>.*/, "") sub(/file:\/\//, "") split($0, paths, /,/)for (i in paths){result[count++] = paths[i]}
}END {# 打印数组内容for (i = 0; i < length(result); i++) {print result[i]}}'

这里为啥要将paths集合中的数据倒腾到result数组中,知道为啥吗?

效果如下:

相关文章:

  • Flink在B站的大规模云原生实践
  • 麒麟系统使用-进行.NET开发
  • 【redis实战篇】第八天
  • vue3实战第四步:引入Font Awesome图标库(二)
  • 【Go语言基础【5】】Go module概述:项目与依赖管理
  • uniapp map组件的基础与实践
  • 基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
  • ONLYOFFICE协作空间3.1.1 企业版 介绍及部署说明:家庭云计算专家
  • 【Kubernetes】K8s 之 ETCD - 恢复备份
  • Web 3D协作平台开发案例:构建制造业远程设计与可视化协作
  • 【第一章:人工智能基础】01.Python基础及常用工具包-(2)Python函数与模块
  • Python数学可视化:3D参数曲面与隐式曲面绘制技术
  • 【SpringBoot自动化部署】
  • Rust 通用代码生成器:莲花,红莲尝鲜版三十六,图片初始化功能介绍
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • 五子棋测试用例
  • LRU 和 DiskLRU实现相册缓存器
  • Python计算字符串距离算法库之textdistance使用详解
  • 【2025】win11安装JDK11
  • 2025年- H73-Lc181--22.括号生成(回溯,组合)--Java版
  • 山西通州集团网站建设/邯郸seo营销
  • wordpress固定链接出错/陕西优化疫情防控措施
  • 网站建设和网络推广是干嘛/郑州网站推广报价
  • 怎么把网站做成软件/推广竞价托管公司
  • wordpress维护模式/百度优化排名软件
  • wordpress 导航栏图标/百度关键词优化系统