web-dev-qa-db-ja.com

plinkを使用してリモートシェルスクリプトからの出力でテキストファイルに改行を追加する方法

Windowsから、PuTTYplinkを使用してリモートシェルスクリプトを実行しています

cmd>plink.exe -ssh username@hostipd -pw gbG8qs4 /user/alice/listoffiles.sh > C:\log1.txt

リモートサーバーのシェルスクリプト

#! /bin/bash

echo -e "Hellow\nWorld"

Log1.txtの出力は改行なしのHelloWorldです。として出力を取得する方法

Hello
World
2
user188979

出力に改行が入ります。問題は、これがUnixの改行であり、Windowsが認識しないことです。 Unixは改行をLF(改行)文字としてエンコードしますが、Windowsの改行は2文字のシーケンスCRLF(キャリッジリターン、改行)で構成されます。

Windowsで出力を正しく表示するには、typecmdコマンドまたはメモ帳エディター以外のものを使用します。

Windowsの改行を使用して出力を生成する場合は、スクリプトをsed 's/$/\r/'にパイプできます。ただし、この出力はLinuxでは正常に機能しないことに注意してください。行末の余分なCR文字は、多くのアプリケーションで行の一部と見なされます。