相关疑难解决方法(0)

在Bash中提取文件名和扩展名

我想分别获取文件名(没有扩展名)和扩展名.

我到目前为止找到的最佳解决方案是:

NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
Run Code Online (Sandbox Code Playgroud)

这是错误的,因为如果文件名包含多个.字符,它将不起作用.如果,让我们说,我有a.b.js,它会考虑ab.js,而不是a.bjs.

它可以在Python中轻松完成

file, ext = os.path.splitext(path)
Run Code Online (Sandbox Code Playgroud)

但是如果可能的话,我宁愿不为此启动Python解释器.

有更好的想法吗?

string bash filenames

1969
推荐指数
26
解决办法
143万
查看次数

循环通过hdfs目录

我的HDFS目录结构如下所示.

/user/hive/warehouse/check.db/abcd/date=2015-02-02/xyz=hijk/000000_0 /user/hive/warehouse/check.db/abcd/date=2015-02-02/xyz=pqrs/000000_0

我试图遍历"/user/hive/warehouse/check.db/abcd"下的所有目录,并派生2个字段,并使用下面的代码.

INPUT='/user/hive/warehouse/check.db/abcd'

for dir in $(hadoop fs -ls $INPUT/*/ | grep -o -e "$INPUT/.*") ; do

    xyz=$(echo $dir | cut -d '=' -f 3)
    date=$(echo $dir | sed 's/.*date=\(.*\)\/xyz.*/\1/g')

done
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?还是有更好的替代方法来做到这一点?

hadoop

5
推荐指数
1
解决办法
2792
查看次数

标签 统计

bash ×1

filenames ×1

hadoop ×1

string ×1