我在使用perl编程方面没有多少经验,但必须解决一个重大问题。我有这种格式的数据:
*IDENTIFIER A
ABCDEFGHIJKLMNOPQRSTVUWXYZ
3. line
4. line
*IDENTIFIER B
ABCDEFGHIJKLMNOPQRSTVUWXYZ
3. line
4. line
...
我想从标识符下的行中删除前5个符号,并将这些符号添加到标识符行。每个标识符以*开头。新文件应如下所示:
*IDENTIFIER A:ABCDE
FGHIJKLMNOPQRSTVUWXYZ
3. line
4. line
*IDENTIFIER B:ABCDE
FGHIJKLMNOPQRSTVUWXYZ
3. line
4. line
...
我会很高兴得到各种帮助。 THX
答案 0 :(得分:2)
那不是那么难。
while (<>) {
if (/^\*/) { # Identifier
chomp; # Remove the \n.
my $nextline = <>; # Read the next line.
my $first_5 = substr $nextline, 0, 5, q(); # Move the 1st 5 characters to a variable.
print "$_:$first_5\n$nextline"; # Print the identifier, the 5 chars,
# newline, nextline.
} else {
print
}
}