我有一个包含90个文件的目录。文件名就像
/user/jk/2016d/IDPSRU20160219_2345.txt
我想将文件名更改为/user/jkris03/2016d/IDPSRU20160223_2345.txt
请注意,只有19
被文件名中的23
替换,后续_2345
对于每个文件都会有所不同。
如果你能提供答案,我将非常感激。
请注意,direcory /文件位于hdfs。
谢谢,
答案 0 :(得分:2)
如果您只想将19_
替换为23_
,可以执行以下操作:
hdfs dfs -ls -C /user/jk/2016d/ | awk '{OLD=$0; sub("19_", "23_", $0); system("hdfs dfs -mv "OLD" "$0);}'
其中,
hdfs dfs -ls -C /user/jk/2016d/
:用于列出HDFS文件
OLD=$0
:用于存储旧文件名
sub("19_", "23_", $0)
:用于创建新文件名
system("hdfs dfs -mv "OLD" "$0)
:用于重命名文件
希望它有所帮助!
答案 1 :(得分:0)
您可以查看rename
命令。它允许您通过正则表达式重命名。我认为它在不同的发行版之间有所不同,因此请使用man rename
查看它是如何为您工作的。