2017-04-24 83 views
0

说我有一个文本文件,它的格式为:如何删除每一行的第一部分?

S1:I am line one. 
S2:I am line two. 
S3:I am line three. 
S4:I am line four. 

如何删除每一行的ID部分(让我只剩下I am line one.等)?更改输入记录分隔符$/还是使用删除ID的正则表达式更好?

回答

3

这个可能吗?它使用匹配的一切直至并包括第一个冒号:并将其删除

perl -pe 's/^[^:]*://' myfile > newfile 

在程序正则表达式:

open my $fh, '<', $filename or die qq{Unable to open "$filename" for input: $!}; 

while (<$fh>) { 

    s/^[^:]*://; 

    # Use remainder of line left in $_ 
} 
+0

我这样做是在脚本中,而不是在命令行。这个正则表达式在“分裂”函数内工作,就像巴勃罗所说的那样? –

+0

@KyleWeise:查看我的回答更新 – Borodin

+0

真棒这个作品。感谢鲍罗廷! –