首页 > 其他分享 >关于HDFS路径文件夹名称的问题

关于HDFS路径文件夹名称的问题

时间:2024-11-16 20:40:46浏览次数:1  
标签:11 HDFS 15 路径 gmall 2024 文件夹 dir inc

问题发现

​ 最开始的需求:修改/origin_data/gmall/db目录下所有以inc结尾的文件夹里的文件夹(名称为2024-11-15)修改为2020-6-14

问gpt写了个脚本:

#!/bin/bash

# 遍历 /origin_data/gmall/db 下所有以 "inc" 结尾的文件夹
for dir in $(hdfs dfs -ls /origin_data/gmall/db | grep '/inc$' | awk '{print $8}'); do
    # 检查目录下是否存在名为 "2024-11-15" 的子文件夹
    if hdfs dfs -test -d "$dir/2024-11-15"; then
        # 将 "2024-11-15" 重命名为 "2020-6-14"
        hdfs dfs -mv "$dir/2024-11-15" "$dir/2020-6-14"
        echo "Renamed $dir/2024-11-15 to $dir/2020-6-14"
    fi
done
  • 运行后发现目标文件夹名称没有改变
  • 单独运行hdfs dfs -ls /origin_data/gmall/db可以有返回值

将脚本修改一下:

#!/bin/bash

# 遍历 /origin_data/gmall/db 下所有以 "inc" 结尾的文件夹
for dir in $(hdfs dfs -ls /origin_data/gmall/db | grep 'inc' | awk '{print $NF}'); do
    # 检查目录下是否存在名为 "2024-11-15" 的子文件夹
    if hdfs dfs -test -d "$dir/2024-11-15"; then
        # 将 "2024-11-15" 重命名为 "2020-6-14"
        hdfs dfs -mv "$dir/2024-11-15" "$dir/2020-6-14"
        echo "Renamed $dir/2024-11-15 to $dir/2020-6-14"
    else
        echo "No 2024-11-15 directory found in $dir"
    fi
done
  • 目标文件夹成功修改,但是会将不是以inc结尾,但具有inc字串的文件夹误修改

  • 例如存在错误返回值:No 2024-11-15 directory found in /origin_data/gmall/db/base_province_full

为了实现准确的需求询问gpt排查问题:得知可以使用使用 cat -A 来显示不可见字符

hdfs dfs -ls /origin_data/gmall/db | cat -A

结果:

得知每个路径的末尾有 $ 符号,表示行末,可以使用inc$代表以inc结尾,故hdfs dfs -ls /origin_data/gmall/db | grep -E 'inc$'可以正确返回而hdfs dfs -ls /origin_data/gmall/db | grep -E '/inc$'是错误的,明显gpt把转义符\当成了/,/会被系统识别为路径的分隔符

标签:11,HDFS,15,路径,gmall,2024,文件夹,dir,inc
From: https://www.cnblogs.com/Forgotten-melody/p/18549762

相关文章

  • 如何使用python批量读取母文件夹下的子文件夹名称
    文件准备如上图所示,我想要将dir中的所有的子文件夹的文件名打印出来代码准备importoscutrrent_dictionary=os.getcwd()#该值所代表的含义就是打开文件的绝对路径cutrrent_dictionary="D:\400-File\000-Project\000-Pycharm\005-CSDN_File"print(cutrrent_dic......
  • 1018 Public Bike Management(多条最短路径,dijkstra+dfs+回溯)
     该题考查多条最短路径的计算,对比单条最短路,主要有两点不同:1.在dijkstra算法中记录每个结点的所有相同最短距离的前结点2.在dfs找多条最短路径时需要回溯状态拿到所有最短路径以后,我们根据题意去获取相应的结果即可1#include<bits/stdc++.h>2usingnamespacestd;......
  • JavaFX史上最全教程 - Shape - JavaFX路径
    JavaFX有其他内置的形状,如ArcCircleCubicCurveEllipseLinePathPolygonPolylineQuadCurveRectangleSVGPathText以下代码显示了如何创建路径。importjavafx.application.Application;importjavafx.geometry.Insets;importjavafx.scene.Group;importjavafx.scene.Scene;......
  • AI 产品经理成长蓝图:入门到精通学习路径(AI产品经理最新学习路线)
    AI产品经理区别于普通产品经理的地方,不止在懂得AI算法,更重要的是具有AI思维。这里为你精心规划了一条从入门到精通的学习路径,助你在AI产品领域乘风破浪......
  • Oracle VM VirtualBox Ubuntu设置共享文件夹方式
    https://www.jb51.net/database/323489zri.htmVirtualBox自带了一个增强工具SunVirtualBoxGuestAdditions,这是实现虚拟机与真实主机共享的关键。启动虚拟机后,点击控制菜单“设备”→“安装增强功能”,打开OracleVMVirtualBox,点击设置。点击“共享文件夹”。点击加号。......
  • linux系统so动态库的搜索路径
    so动态库的搜索路径搜索的先后顺序编译目标代码时指定的动态库搜索路径环境变量LD_LIBRARY_PATH指定的动态库搜索路径配置文件/etc/ld.so.conf中指定的动态库搜索路径默认的动态库搜索路径/lib默认的动态库搜索路径/usr/libgcc编译指定动态库搜索路径-Wl,-rpath=<动态库......
  • 学习笔记(算法)——路径之谜(蓝桥杯官网)(dfs,回溯)
    学习+1学习目标:蓝桥杯省奖学习内容:每日一题题目源于蓝桥杯官网题目描述解题思路1.先定义最大行列值,输入行列值,行列靶数,答案数组,访问标记数组,辅助数组2.定义dfs(深度优先搜索)函数2.1记录当前位置2.2如果到达右下角&&行列只剩一靶2.2.1做循环:如果前面的靶子都打......
  • Linux-vscode-c++-slambook2-库文件找不到路径
    Linux-vscode-c++-slambook2-库文件找不到路径分享所遇到的困难,填补这些坑洞,希望后来者能够如履平地。首先已经在c_cpp_properties.json中已经添加了相关的文件,"includePath":["${workspaceFolder}/**","/usr/include/eigen3"......
  • nfs服务器之间实现目录共享_netapp nfs挂载共享目录某个文件夹给服务器
    title:nfs服务器之间实现目录共享date:2022-11-0522:41:54tags:[nfs,文件共享]categories:linux在使用airflow的时候,scheduler和worker之间的dag文件需要保持一致,而airflow没有解决这个问题,所以,需要我们自己解决dag文件的同步问题。第一个解决方案就是云服务商提供的nas......
  • 题解:P11251 [GESP202409 八级] 美丽路径
    题目传送门题目大意给你一颗树,每个结点为黑色或白色。求一条路径,使得路径上距离为奇数的点颜色不同,距离为偶数的点颜色相同,输出这条路径最多能包含多少结点。思路讲解容易想到用树形动态规划搭配dfs解决。将结点1......