当前位置: 首页 > 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数组中,知道为啥吗?

效果如下:

http://www.lqws.cn/news/194311.html

相关文章:

  • C++11 Move Constructors and Move Assignment Operators 从入门到精通
  • 【JJ斗地主-注册安全分析报告】
  • Pycharm中添加不了新建的Conda环境(此篇专门给Daidai写的)
  • 2025年全国青少年信息素养大赛 scratch图形化编程挑战赛 小高组初赛 真题详细解析
  • Ubuntu系统下交叉编译cJSON
  • 使用python把json数据追加进文件,然后每次读取时,读取第一行并删除
  • MySQL的优化部分介绍
  • MySQL体系架构解析(三):MySQL数据存储的揭秘
  • 第四讲:类和对象(下)
  • mamba架构和transformer区别
  • 导出pcap文件中的特定数据包
  • STM32外设问题总结
  • 六级作文--句型
  • Abaqus模拟弯曲问题之剪力自锁与沙漏化现象
  • 学习日记-day23-6.6
  • [蓝桥杯]轨道炮
  • Python 构建法律DeepSeek RAG
  • Dubbo学习(一):Dubbo介绍
  • 装载机防撞系统:智能守护,筑牢作业现场人员安全防线
  • win11部署suna
  • 三、元器件的选型
  • python闭包与装饰器
  • 【大厂机试题解法笔记】区间交集
  • Linux文件系统详解:从入门到精通
  • 编译原理笔记
  • ComfyUI 文生图教程,进行第一次的图片生成
  • curl获取ip定位信息 --- libcurl-multi(三)
  • RocketMQ入门5.3.2版本(基于java、SpringBoot操作)
  • c++算法学习5——贪心算法
  • 类Transformer架构