从一行中提取一个字符串并将其放入预切分行(Perl)
我在perl编程方面没有太多经验,但必须解决一个严重的问题。我有以下格式的数据:从一行中提取一个字符串并将其放入预切分行(Perl),perl,extract,transfer,Perl,Extract,Transfer,我在perl编程方面没有太多经验,但必须解决一个严重的问题。我有以下格式的数据: *IDENTIFIER A ABCDEFGHIJKLMNOPQRSTVUWXYZ 3. line 4. line *IDENTIFIER B ABCDEFGHIJKLMNOPQRSTVUWXYZ 3. line 4. line ... 我想从标识符下的行中删除前5个符号,并将它们添加到标识符行中。每个标识符以*开头。新文件应如下所示: *IDENTIFIER A:ABCDE
*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这并不难
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
}
}
while(){
如果(/^\*/){#标识符
chomp;#删除\n。
我的$nextline=#读下一行。
my$first_5=substr$nextline,0,5,q();#将前5个字符移动到变量中。
打印“$\$first\u 5\n$nextline”;#打印标识符、5个字符、,
#换行,下一行。
}否则{
打印
}
}
Hey choroba,非常感谢您的快速回复。这很好用!我不得不承认,这似乎比我想象的要容易。再一次。非常感谢。