通过脚本遍历目录的内容

时间:2019-05-21 16:21:21

标签: linux bash shell hdfs sh

我有以下脚本,该脚本应该遍历HDFS目录的内容

#!/bin/bash

PATHS=$(java MyJava)
DELIM='|'
HDFSPATH=${PATHS}${DELIM}

while [[ ${HDFSPATH} ]]; do
  PATHARR=( "${HDFSPATH%%"DELIM"*}" );
  HDFSPATH=${HDFSPATH#*"$DELIM"};
done

SOURCEPATH=${PATHARR[0]}

for FILENAME in `hdfs dfs -ls ${SOURCEPATH} | awk '{print $NF}' | grep .txt$ | tr '\n' ' '`; do
  echo ${FILENAME};
done

我按如下方式运行

sh myscript.sh

.java文件是

public class MyJava {
  public static void main(String[] args) {
    System.out.println("/a/b/c/" + "|" + "/d/e/f");
  }
}

我希望这是

/a/b/c/file1.txt
/a/b/c/file2.txt

但是我得到的是

/a/b/c/file1.txt /a/b/c/file2.txt

换行符被替换为空格,循环仅运行一次。但是,当我直接通过外壳运行for循环时,我得到了预期的结果。有人可以帮我吗?

该脚本在Linux计算机上运行。

0 个答案:

没有答案