【发布时间】:2017-03-16 17:38:33
【问题描述】:
我在 UNIX 文件系统中有 file.txt。其内容如下:
{abc}]}
{pqr}]}
我想把这个file.txt转换成:
[
{abc}]},
{pqr}]}
]
我可以使用下面的 shell 脚本来做到这一点:
sed -i 's/}]}/}]},/g' file.txt
sed -i '1i [' file.txt
sed -i '$ s/}]},/}]}]/g' file.txt
我的问题是,如果这个文件存在于 HDFS 的 /test 位置怎么办。
如果我使用:sed -i 's/}]}/}]},/g' /test/file.txt
它会查看 unix 分区 /test 并说文件不存在。
如果我使用:sed -i 's/}]}/}]},/g' | hadoop fs -cat /test/file.txt
它说 ----- sed: no input files 然后按照 cat 命令打印 file.txt 的内容。
如果我使用hadoop fs -cat /test/file.txt | sed -i 's/}]}/}]},/g'
它说---- sed:没有输入文件 cat:无法写入输出流
那么,我应该如何将 HDFS 文件中的字符串替换为其他字符串?
【问题讨论】: