Perl 仅复制文本,直到每行上的特殊字符进入另一个文件
我有一个包含以下数据的文本文件:Perl 仅复制文本,直到每行上的特殊字符进入另一个文件,perl,perl-module,Perl,Perl Module,我有一个包含以下数据的文本文件: ChainCtrlBuildChain():ChainController.c ChainCtrlDumpChain():ChainController.c ChainCtrlDumpChanCallback():ChainController.c ChainCtrlExit():ChainController.c ChainCtrlGetBitStreamChan():ChainController.c ChainCtrlInit():ChainControl
ChainCtrlBuildChain():ChainController.c
ChainCtrlDumpChain():ChainController.c
ChainCtrlDumpChanCallback():ChainController.c
ChainCtrlExit():ChainController.c
ChainCtrlGetBitStreamChan():ChainController.c
ChainCtrlInit():ChainController.c
我只想将函数名复制到另一个文本文件中
我的期望输出:
ChainCtrlBuildChain
ChainCtrlDumpChain
ChainCtrlDumpChanCallback
链表
ChainCtrlGetBitStreamChan
链式起重机
我怎么做
请注意,函数名和类名将根据用户输入的不同而有所不同
通过使用 我得到了“()”的外部函数体
ChainCtrlBuildChain()
ChainCtrlDumpChain()
我只给你文本处理部分。我想,你可以自己做文件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()
它起作用了。谢谢。我自己做了I/O。我是perl新手,所以不理解这行“$text=~s/\s:\s.*//g;”。但我会用谷歌搜索它,并试图找出答案。@user2628315用Perl搜索正则表达式教程。此行将[space][:][space][行末的任何内容]替换为空字符串
ChainCtrlBuildChain()
ChainCtrlDumpChain()
ChainCtrlDumpChanCallback()
ChainCtrlExit()
ChainCtrlGetBitStreamChan()
ChainCtrlInit()