0

2 種類の段落を含む .txt ファイルがあります。

いくつかのステートメントと数字 (02) などの後に return が続き、
いくつかのものが続き、その後に 2 つの return が続きます

次に、2 つの改行が続く 1 行の段落

いくつかの二重行テキストとともに、いくつかのテキストを返し
ます。

テキスト ファイルから 1 行の段落をすべて削除したいと考えています。結果は次のようになります。

いくつかのステートメントと数字 (02) などの後に return が続き、
いくつかのものが続き、その後に 2 つの return が続きます

いくつかの二重行テキストとともに、いくつかのテキストを返し
ます

私はsedとawkでこれをやろうとしましたが、改行の後にいくつかの文字が続き、2つの連続した改行で終わる正規表現で問題が発生し続けています \n\n.

ワンライナーでこれを行う方法はありますか、または行ごとに読み取り、段落の長さを決定してそのように削除するスクリプトを作成する必要がありますか?

ありがとう。

4

2 に答える 2

1
awk -F '\n' -v RS='' -v ORS='\n\n' 'NF>1' input.txt
  • RSが空の文字列に設定されている場合、各レコードは常に最初に検出された空白行で終了します。
  • RSが空の文字列に設定され、単一の文字に設定されている場合FS、改行文字は常にフィールド区切り文字として機能します。

[続きを読む]

于 2012-04-11T16:10:53.307 に答える
1

私は、段落指向の解析のために Perl に手を伸ばす傾向があります。

perl -00 -lne 'print if tr/\n/\n/ > 0'
于 2012-04-11T18:20:10.870 に答える