Linux 中用Perl 小问题
时间:2010-10-29
来源:互联网
运用Perl对文件处理,但是不在Perl程序中直接指定文件,而是调用Perl时在调用的命令中指定。
似乎是一个Linux的问题,希望有人能够解答!
比如:
Perl程序为:
use strict;
my $line="N/A";
while($line=<STDIN>) {
chomp($line);
$line=~s/\[(\d+)\]/$1/g;
print $line, "\n";
}
目的是使目标文件每行[num]的方括号去掉,但是目标文件很多,想一个一个操作。
如果不用在perl 中写目标文件? 看见人操作 cat filename | perl
但是我操作就是不行,只执行了 cat 命令
似乎是一个Linux的问题,希望有人能够解答!
比如:
Perl程序为:
use strict;
my $line="N/A";
while($line=<STDIN>) {
chomp($line);
$line=~s/\[(\d+)\]/$1/g;
print $line, "\n";
}
目的是使目标文件每行[num]的方括号去掉,但是目标文件很多,想一个一个操作。
如果不用在perl 中写目标文件? 看见人操作 cat filename | perl
但是我操作就是不行,只执行了 cat 命令
作者: kezhang 发布时间: 2010-10-29
多个文件的话,用shell结合perl:
for i in *; do perl -pi -e 's/\[(\d+)\]/$1/g' $i;done
for i in *; do perl -pi -e 's/\[(\d+)\]/$1/g' $i;done
作者: 兰花仙子 发布时间: 2010-10-29
我最近也替换文件里的内容。用的这些方法,看看值不值的借鉴:
egrep --color -Rm1 '^\[[0-9]+\]' /directory #查看目录下匹配上的文件内容
egrep -lRm1 '^\[[0-9]+\]' /directory | perl -pi -e 's/\[(\d+)\]/$1/g'
egrep --color -Rm1 '^\[[0-9]+\]' /directory #查看目录下匹配上的文件内容
egrep -lRm1 '^\[[0-9]+\]' /directory | perl -pi -e 's/\[(\d+)\]/$1/g'
作者: liyangole 发布时间: 2010-10-29
对shell 不是很熟悉, 只是想用命令方式调用文件并用已有的perl处理。实际perl要复杂些。
如perl文件名为perl_start, 待处理的文件分别为A_file, B_file ,C_file & D_file .....还会引入新的文件。
想用文件名在命令行 XXX A_file XXX perl_start
似乎看见过别人这样用,但是忘记如何操作,能帮忙解答吗?
如perl文件名为perl_start, 待处理的文件分别为A_file, B_file ,C_file & D_file .....还会引入新的文件。
想用文件名在命令行 XXX A_file XXX perl_start
似乎看见过别人这样用,但是忘记如何操作,能帮忙解答吗?
作者: kezhang 发布时间: 2010-10-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28