我有一个包含多组行的文件,每组行之间用空行分隔。我想将每组行放在一行中,并用空格分隔。
输入
line1
line2
line3
---blank line-
lineA
lineB
---blank line-
line$
line%
line&
line£
输出
line1 line2 line3
lineA lineB
line$ line% line& line£
答案1
由于注释格式很糟糕,请验证这是所需的正确输入/输出格式:
输入文件.txt:
Iamline1
Iamline2
Iamline3
GrouponeEndswithme
Group2startshere
Thisisgroup2line2
输出文件.txt:
Iamline1Iamline2Iamline3GrouponeEndswithme Group2startshereThisisgroup2line2
在这种情况下,包含所有组的输出文件仍然只有一行,而不是多行。这也意味着行组中行中的任何空格看起来都与输出文件中的“新组”没有区别。如果这不是您想要的格式,请在问题描述中提供示例输入和输出。
根据您的描述,这里有一个将创建您的文件的脚本。请确保使用正确的文件名修改“open('filename.txt', 'r')”。
#Line Formatter
newfile = open('newfile.txt', 'w+')
with open('filename.txt', 'r') as f:
group = ""
for line in f:
if len(line) > 0:
group += line + " "
else:
group = group + "\n"
newfile.write(group)
newfile.close()
Per @MohsenEl-Tahawy 这是他的 perl 解决方案:
perl -00ne 's/\n/ /g;print "$_\n";' inputfile