bash - 如何使用 bash 命令读取名称中包含 '[' 和 ']' 的文件

标签 bash hadoop

我有一个文件 ../reports/[2015-10-01]-[2015-10-07]。它是一个大文件,所以当我尝试使用“拆分”命令拆分它时,出现错误,因为 bash 将 [] 视为字符类。 我的脚本:

hdfs='hadoop fs'
startDate=$1 
endDate=$2
reportPath="/reports/weeklyReport/[${startDate}]-[${endDate}]"
tmpWorkingDirectory="/tmp/weeklyReport"
filePrefix="WeeklyReport[${startDate}]-[${endDate}]-Part-"

if [ -d $tmpWorkingDirectory ]; then
    rm -rf $tmpWorkingDirectory
fi
mkdir $tmpWorkingDirectory
$hdfs -getmerge $reportPath $tmpWorkingDirectory/report.txt
split -d -C 10240000 $tmpWorkingDirectory/report.txt $filePrefix

.....

我收到错误::

getmerge: Illegal file pattern: Illegal character range near index 6 [2015-10-01]-[2015-10-07]

我尝试将转义字符“\”与“[”一起使用,但它仍然无法正常工作。 请建议我如何阅读此文件。

最佳答案

...那这个呢? $hdfs -getmerge "$reportPath""$tmpWorkingDirectory/report.txt"

关于bash - 如何使用 bash 命令读取名称中包含 '[' 和 ']' 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079059/

相关文章:

linux - 如果路径不存在尝试另一条路径

hadoop - 机架感知和名称节点之间的区别

从 hdfs 到 hive 的 Csv 文件摄取

linux - 如何检测 Bash/Shell 中 GUI 的可用性?

linux - Bash 脚本在没有 shebang 的情况下无法工作但是 shebang 导致错误消息

linux - bash 命令创建自定义命名文件

shell - 我们可以拆分一个大的 HDFS 文件夹吗?

linux - 如何使用 sed 's/$var/$var2' 文件

database - 无法检索配置单元中的日期列

mysql - 在 hdfs 中进行选择的最佳方法?