1

リモートシステムからメッセージを取得しています。応答は複数行であり、区切り文字に基づいて単一行に変換する必要があります。

ストリームリーダーの内容は以下のようなものです

Iam in first Line
Iam in second Line
:

Iam in third Line
Iam  in the forth Line
Iam in fifth Line
:

Iam in Sixth Line
Iam In seventh Line
IAm in Eighth Line
:

応答の複数行は、区切り文字「:」まで 1 行に変換する必要があります。

リモートシステムとの接続が終了するまで、ファイルからではなく、リモートシステムからそれを読んでいることに注意してください。

出力は次のようになります。

Iam in first Line Iam in second Line:
Iam in third Line Iam in the forth Line:
Iam in Sixth Line Iam In Seventh Line Iam in Eighth Line:

誰かがこれを達成するためのアプローチやコマンドを手伝ってもらえますか?

4

2 に答える 2

3

一方通行:

$ perl -pne 'chomp unless(/^:/);' file
Iam in first LineIam in second Line:
Iam in third LineIam  in the forth LineIam in fifth Line:
Iam in Sixth LineIam In seventh LineIAm in Eighth Line:
于 2012-11-09T05:04:59.260 に答える
-1
perl -p -e 's/\n/ /g;s/:[\s]*/:\n/g' your_file

以下でテスト済み:

> cat temp
Iam in first Line
Iam in second Line
:

Iam in third Line
Iam  in the forth Line
Iam in fifth Line
:

Iam in Sixth Line
Iam In seventh Line
IAm in Eighth Line
:
> perl -p -e 's/\n/ /g;s/:[\s]*/:\n/g' temp
Iam in first Line Iam in second Line :
 Iam in third Line Iam  in the forth Line Iam in fifth Line :
 Iam in Sixth Line Iam In seventh Line IAm in Eighth Line :
>
于 2012-11-09T06:13:09.103 に答える