-2

ほとんどの行が長い巨大なファイルがありますが、いくつかの単語だけの行がいくつかあります。

ここに長文があります。
これ
は
a
短い
ライン。
ここに長文があります。
ここに長文があります。
これ
は
別
短い
ライン。
ここに長文があります。

すべての短い行は、固有の単語で始まります。この例では、短い行は「This」で始まり「line」で終わります。そして、それらはまったく同じ行数にまたがります。ファイル内の短い行のみを連結するコマンドが必要です。

ここに長文があります。
これは短い行です。
ここに長文があります。
ここに長文があります。
これは別の短い行です。
ここに長文があります。

仕事をするコマンドはありますか?必要がなければスクリプトプログラムを書きたくない...

ありがとう。

4

2 に答える 2

4
perl -pe's/\n/ / if ($j ||= /^This$/) &&= !/^line\.$/'

使用法:

perl -pe'...' file.in >file.out    # From file
perl -pe'...' <file.in >file.out   # From STDIN
perl -i~ -pe'...' file             # "In-place" with backup
perl -i -pe'...' file              # "In-place" without backup
于 2013-03-23T06:44:08.803 に答える
0
sed -e :a -e '/line\.$/{p;d;}' -e '/^This/{N;s/\n/ /g;};ta' file.in > file.out
于 2013-03-23T23:44:27.820 に答える