UNIXファイルシステムにfile.txtがあります。その内容は以下の通りです:HDFSにあるファイルのテキストを別のテキストに置き換える方法
{abc}]}
{pqr}]}
私はにこのfile.txtを変換したい:私はシェルスクリプトの下に使用してこれを行うことができるよ
[
{abc}]},
{pqr}]}
]
:
sed -i 's/}]}/}]},/g' file.txt
sed -i '1i [' file.txt
sed -i '$ s/}]},/}]}]/g' file.txt
私の質問はこのファイルが/ testの場所のHDFS上に存在するとどうなりますか?
私が使用している場合:sed -i 's/}]}/}]},/g' /test/file.txt
これは、UNIXのパーティション/テストを見て、ファイルが存在しないと言うでしょう。
私が使用している場合:何も入力ファイルを、その後、catコマンドあたりとしてはfile.txtの内容を印刷しますsed -i 's/}]}/}]},/g' | hadoop fs -cat /test/file.txt
それは-----がsedはないと言います。
私が使用している場合はhadoop fs -cat /test/file.txt | sed -i 's/}]}/}]},/g'
それはsedの----言う:私はいくつかとHDFSで私のファイルから文字列を置き換えるものとどのように
ので、出力ストリームに書き込むことができません、:入力が 猫をファイルしません他の文字列ですか?
hadoop fs -put -f - /test/file.txt
がHDFSに元のファイルを上書きするためにある最初の行にブラケットを追加するためのものです。.. – salmanbw