如何在HDFS中使用sed?

时间:2019-06-21 11:16:48

标签: sed hdfs

我正在尝试为更改一个特殊字符(Þ)。但是从hdfs中找不到。我使用的命令是这样的:

hdfs dfs -cat path/file.txt | sed -i 's/Þ/;/g' | hadoop fs -put -f - path/file.txt

其中:

  1. hdfs dfs -cat用于获取HDFS文件内容
  2. sed -i 's/Þ/;/g'代替Þ;
  3. 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.

谢谢!

1 个答案:

答案 0 :(得分:0)

hdfs dfs -cat path/file.txt | sed 's/Þ/;/g' | hadoop fs -put -f - path/file.txt

它以这种方式对我有用。