perl命令行就地编辑文件

原文:http://blog.sina.com.cn/s/blog_494bf2bf0100lidf.html

简介

       Perl 用作命令行操作的快速而又难看的脚本是很有用的;通过命令行,Perl 仅用一行就可以实现大多数其它语言需要数页代码才能完成的任务,这个小东东的功能可是非常强大的。

       参数:

       -w     打开警告。

       -i     在原文件中编辑(就地编辑)。

       -i.bak  就地编辑,但是会备份原文件,并且以.bak为后缀,这个.bak可以修改成自己想要的任何符号。

       -n      使用<>将所有@ARGV参数当作文件来逐行运行,会将读入的内容隐式的逐一按行来遍历文件,每一行将缺省保存在  $_;意即会把输入的文件逐行的读取并保存在$_这个变量中,我们修改$_相当于间接影响文件中的内容,这个工作其实是perl封装好了的,直接使用就好了;这个参数不会自动打印$_。

       -p      这个和-n类似,但是会打印$_。

       -e      指定字符串用作脚本执行;通常后跟单引号,把需要执行的语句封装在其中。

       注释:关于-p和-n开关的使用,当你想显示打印数据时,使用-n开关;-p开关会隐式                的打印$_;因此,-n开关更加适用对文件进行选择性的处理,只需打印特殊的数据,-p更加适用于对文件进行完全处理;命令行perl同样可以对批量文件进行操作。

 

替换AB

       perl  -i  -pe  ‘s/old_str/new_str/g’  files

 

替换AB并备份

       perl  -i.bak  -pe  ‘s/old_str/new_str/g’  files

 

修改并输出到屏幕

       perl  -ne  ‘s/old_str/new_str/g;print;’  files

       此处修改后输出到屏幕,但并不会改变原文件。

 

搜索满足条件的行

       perl  -i  -ne  ‘print  if  /condition/’  files

在文件中插入行号

       perl  -i  -pe  ‘$_ = sprintf “%04d %s”, $. , $_’  files

 

在匹配的某行行首添加字串

       perl  -i  -pe  ‘print  “string”  if  /condition/’  files

 

在匹配的某行行尾添加字串

       perl  -i  -pe  ‘chomp; $_ = $_ . “string\n”  if  /condition/’  files

 

在匹配的某行前增加一行

       perl  -i  -pe  ‘print  “string\n”  if  /condition/’  files

 

在匹配的某行后增加一行

       perl  -i  -pe  ‘$_ = $_ . “string\n”  if  /condition/’  files  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值