本地和Hadoop文件之间的差异

时间:2014-04-01 19:18:44

标签: linux shell hadoop diff bin

我正在尝试以下方法:

#!/bin/sh
while read LINE
do
diff source_$LINE <(hadoop fs -cat /user/hadoop-path/$LINE/output) > diff_$LINE
done < FILE

从cmd Line可以正常工作,但是从shell中它会产生错误: 意外令牌附近的语法错误`('

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

POSIX shell(#!/bin/sh)中没有进程替换。您的交互式shell显然是bash,而您的脚本则不是。将shebang更改为#!/bin/bash,或在脚本中使用here文档:

diff source_$LINE - <<EOF > diff_$LINE
$(hadoop fs -cat /usr/hadoop-path/$LINE/output)
EOF