当前位置: 代码网 > it编程>网页制作>Perl > Perl一句话命令行编程中常用参数总结

Perl一句话命令行编程中常用参数总结

2024年05月18日 Perl 我要评论
工作中的线上环境有很多的perl命令行的类似一句话的命令,今天总结下perl的命令行编程的一些东西。-e 后面紧跟着引号里面的字符串是要执行的命令:如果是多个命令就可以使用多个-e,这里是不是想到了s

工作中的线上环境有很多的perl命令行的类似一句话的命令,今天总结下perl的命令行编程的一些东西。

-e 后面紧跟着引号里面的字符串是要执行的命令:

如果是多个命令就可以使用多个-e,这里是不是想到了sed呢?但是要注意的是中间的哪个“;”.

-m 导入要使用的模块:

另外-m可以判断某个模块是不是已经安装了

-m 的功能和-m类似,区别在于-m 模块名等同于use 模块名,这样会把一些默认的函数或者其它东西引进过来,-m 模块名 则会关闭这些默认值,这样可以引入一些你只使用的函数;例如上面的例子:

换成-m的话就不会有任何输出;-m 和 -m 通过 = 来引入某个模块的特别函数.

-w 等同于use warnings
-n -p 都会使用 <> 将所有 @argv 参数当作文件来逐行运行(有循环的意思哦,经常和其它参数一起处理文件),会将读入的内容隐式的逐一按行来遍历文件.每一行将缺省保存在 $_;但-p 会将内容“重复”打印出来,而-n更倾向与打印满足某种条件的行(这这里还有一些有用的变量比如$. 表示当前行的行数):

看到这里是不是想到了sed的-n 的特性:

-i 将修改直接的写入文件,这个和sed也是一样的哦;

-a 打开自动分离 (split)  模式. 空格是缺省的分离号. 输入根据分离号被分离然后放入缺省数组 @f.

和awk是不是很像?还有更像的,那就是-f,和awk一样更改字段之间的分割符,默认是空格和tab;

看到上面的那个-l的参数没?它的最主要的作用就是chomp字段和在每个输出的后面加上“\n”,让输出换行;是不是挺有用的呢?

有没有其它和awk有类似的地方呢?答案是肯定的,

begin{},end{} 是不是也很熟悉呢?

以下是一些常用的简单实例

#perl -pi -e's/aaa/bbb/' filename 修改当前file文件中的文件,不生成中间文件,速度很快.记住 -i 开关,因为它让你原地编辑文件.

#perl -ne ‘print if /^aaaaa/' filename 象grep一样过滤文件中需要的内容.这个地方,使用了-n,所以一次是做一行的操作,直到整个文件读完.另外,在管道时,-n也会一样,来遍历管道送过来的内容.

#perl -n -e ‘print “$. – $_”‘ filename 这个例子中的,没用-ne,只是命令写成了-n -e,其实一样,这个例子中,是给当前文件中的内容都加一个行号打印出来.注:$.表示当前行号

#perl -pe ‘$_ = “$. $_”‘ filename 这个其实和上面一样,分别只是使用了-p替换了-n,这个有个什么好处啦,别的地方都一样,但-p按行来遍历完文件后,会给$_打印出来.

大家还记得awk分割域(awk ‘{i = nf – 1; print $1 + $i}')啊,是不是很方便,下面我们来看看perl

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com