请帮助我如何使用以下命令删除HDFS中文件名的扩展名 Unix Shell脚本。
例如,我的初始文件名是sample.txt.gz。我要删除 文件名中的.gz。
这是我到目前为止所做的。
#Parameters
baseDirHdfs=${1} dss=${2} ds=${3} processDirHdfs=${4} filename=${5} kerberosKeytab=${6} kerberosPrincipal=${7}
kinit -kt ${kerberosKeytab} ${kerberosPrincipal}
#Removing .gz extension
newFilename=echo ${filename} | cut -f1-6 -d '.'
#Decompressing .GZ Files
hdfs dfs -cat /${baseDirHdfs}/${dss}/${ds}/${processDirHdfs}/${filename}|gzip -d|hdfs dfs -put - /${baseDirHdfs}/${dss}/${ds}/${processDirHdfs}/${newFilename}
答案 0 :(得分:0)
通常,文件名和扩展名由dot(.)
所以,这样的事情就可以做到:
mayankp@mayank: $file=myfile.sh
mayankp@mayank: $file_name=`echo $file| awk -F'.' '{print $1}'`
mayankp@mayank: $echo $file_name
myfile
让我知道这是否有帮助。