web-dev-qa-db-ja.com

行の唯一の文字である場合を除いて、改行をスペースに置き換える方法

私は次のようなテキストを持っています:

彼女の患者から
精査
そして賢明な批判。

J.K.

ワシントンDC。

1919年4月。

そしてそれを次のように残したい:

彼女の忍耐強い精査と賢明な批判から。

J.K.

ワシントンDC。

1919年4月。

どうすればいいですか?検索と置換ツールを使用して改行を/r/nで簡単に置き換えることができることは知っていますが、これを行う方法がわかりません。

追加の手順:前の行が空で、改行文字が含まれている場合は、1つの改行も削除します。それは可能ですか?

プログラミングについてはよくわかりませんが、bashやターミナルツールを使用してこれを行う必要がある場合は問題ありません。ただし、テキストファイルが非常に長いため、4つのCPUコアを使用できるといいのですが。

1
Maccer
  • Ctrl+H
  • 何を見つける:(?<=\S)\R(?=\S)
  • 置換:#スペース
  • ラップアラウンドをチェック
  • 正規表現を確認してください
  • Replace all

説明:

(?<=\S)     # positive lookbehind, make sure we have a NON space character before
\R          # any kind of line break
(?=\S)      # positive lookahead, make sure we have a NON space character after

与えられた例の結果:

from her patient scrutiny and judicious criticism.

J.K.

WASHINGTON, D.C.

April, 1919.

スクリーンキャプチャ:

enter image description here

2
Toto