我正在尝试为更改一个特殊字符(Þ)。但是从hdfs中找不到。我使用的命令是这样的:
hdfs dfs -cat path/file.txt | sed -i 's/Þ/;/g' | hadoop fs -put -f - path/file.txt
其中:
hdfs dfs -cat
用于获取HDFS文件内容sed -i 's/Þ/;/g'
代替Þ; hadoop fs -put -f - path/file.txt
用于覆盖HDFS中的原始文件运行此命令时出现此错误:
sed: no input files
cat: Unable to write to output stream.
如果我选择hdfs dfs -cat path / file.txt,我可以看到内容¿发生了什么事?
编辑1:
我删除了sed的-i,但sed中没有错误,但是控制台显示如下:
put:`path/file.txt': No such file or directory
cat: cat: Unable to write to output stream.
谢谢!
答案 0 :(得分:0)
hdfs dfs -cat path/file.txt | sed 's/Þ/;/g' | hadoop fs -put -f - path/file.txt
它以这种方式对我有用。