2013-07-30 39 views
-1

我有一个包含以下数据的文本文件:仅复制文本,直到每一行特殊字符到另一个文件

ChainCtrlBuildChain() : ChainController.c 
ChainCtrlDumpChain() : ChainController.c 
ChainCtrlDumpChanCallback() : ChainController.c 
ChainCtrlExit() : ChainController.c 
ChainCtrlGetBitStreamChan() : ChainController.c 
ChainCtrlInit() : ChainController.c 

我想只有函数名复制到另一个文本文件。

我想要的输出:

ChainCtrlBuildChain 
ChainCtrlDumpChain 
ChainCtrlDumpChanCallback 
ChainCtrlExit 
ChainCtrlGetBitStreamChan 
ChainCtrlInit 

我该怎么办呢?

请注意,根据用户输入,函数名称和类名称将有所不同。


通过使用user4035's code

$text =~ s/\s:\s.*//g; 

我 “()” 函数以外的身体像

ChainCtrlBuildChain() 
ChainCtrlDumpChain()  

回答

1

我给你纯文本处理部分。我想,你可以自己做文件I/O。

#!/usr/bin/perl 

use strict; 
use warnings; 

my $text = qq{ChainCtrlBuildChain() : ChainController.c 
ChainCtrlDumpChain() : ChainController.c 
ChainCtrlDumpChanCallback() : ChainController.c 
ChainCtrlExit() : ChainController.c 
ChainCtrlGetBitStreamChan() : ChainController.c 
ChainCtrlInit() : ChainController.c}; 

$text =~ s/\s:\s.*//g; 
print $text; 

打印:

ChainCtrlBuildChain() 
ChainCtrlDumpChain() 
ChainCtrlDumpChanCallback() 
ChainCtrlExit() 
ChainCtrlGetBitStreamChan() 
ChainCtrlInit() 
+0

它的工作原理。谢谢,我自己做了I/O。我是新来的Perl,所以我不明白这一行“$ text =〜s/\ s:\ s。* // g;”。但我会谷歌它,并试图找出它。 –

+0

@ user2628315在Perl中搜索正则表达式教程。这行代替[空格] [:] [空格] [任何直到行尾]并且空字符串 – user4035

+0

没问题。会这样做! –

相关问题