【发布时间】:2021-10-04 13:22:24
【问题描述】:
我想重写下面的文本,将其分成一行中的三个字符串。我从文件中读取文本作为数组。接下来,我将数组的所有元素(4 行)连接到一个标量变量中。然后,我尝试在每三次出现空格时拆分连接的元素。 我的代码如下。
open ($TMP, "< TTaaInLittler.txt") or die "open 'TTaaInLittler.txt: failed $! ($^E)";
my @alldata=<$TMP>;
my $oneline=join(" ", @alldata);
close$TMP;
my $i = 0;
my $n = 3;
my @oneline=split(" ", $oneline, 10) if !( ++$i % $n );
print @oneline;
join() 命令似乎有效,因为“print $oneline”打印了所有文本。打印 $oneline,但是打印 4 行。我期待一条线。 split 命令似乎不起作用,因为“print @oneline”没有做任何事情;没有错误,没有输出。
有出路吗?请帮忙。
TTAA 58231 63741 99823 15423 17003 70152 07604 29517 50586 04381
08513 40758 16182 11524 30967 31964 00510 25094 41365 25503
20241 53562 10512 15419 68542 07540 10656 76156 11024 88123
76950 09548 77999 31313 47708 82318=
TTAA 58231 63741
99823 15423 17003
70152 07604 29517
50586 04381 08513
40758 16182 11524
30967 31964 00510
25094 41365 25503
20241 53562 10512
15419 68542 07540
10656 76156 11024
88123 76950 09548
77999 31313 47708
82318=
【问题讨论】:
-
perl -0777 -pe's/\s+/(++$n % 3)?" ":"\n"/eg' input.txt > output.txt
标签: perl