私は現在、エラーがファイルに出力されることがあるシェルスクリプトに取り組んでいますが、それは何の意味もなく、エラーがない限りすべてが正常に機能するため、エラーを移動する必要があります。
次のようなスクリプトがあります。
ftp ftp://$2:$3@$1 << BLOCK > $5
cd "$4"
ls
quit
BLOCK
$ 5は、FTPコマンドの出力が書き込まれるファイルです。したがって、ファイルには次のものがあります
total 8
-rw-r--r-- 1 root root 42 Dec 17 14:26 test1.txt
-rw-r--r-- 1 root root 6 Dec 17 14:08 test2.txt
時々エラーが発生するので、ファイルからエラーを削除する?Invalid command.
ために使用しています。sed
シェルスクリプトを次のように変更しました。error
上記のエラーメッセージが表示されることを確認するために、FTP内に配置したテストに注意してください。
ftp ftp://$2:$3@$1 << BLOCK > $5
cd "$4"
ls
error
quit
BLOCK
fileout=$(sed '/?Invalid command./d' $5)
echo $fileout > $5
これは、エラーメッセージを削除しているという意味で機能していますが、改行も削除しているため、ファイルを見ると次のようになります。
total 8 -rw-r--r-- 1 root root 42 Dec 17 14:26 test1.txt -rw-r--r-- 1 root root 6 Dec 17 14:08 test2.txt
改行を保持するにはどうすればよいですか?
あなたが提供できるどんな助けにも感謝します。