-2

我有一个很大的文件,其中大多数行都很长,但有几行只是几个词:

这是一个很长的句子。
这个
是
一个
短的
线。
这是一个很长的句子。
这是一个很长的句子。
这个
是
其他
短的
线。
这是一个很长的句子。

所有短行都以独特的单词开头。在此示例中,短行以“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 回答