Perl命令行常见用法及技巧
替换
将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i.bak -e ’s/\bfoo\b/bar/g’ *.c
很强大的功能,特别是在大程序中做重构。记得只有在UltraEdit用过。 如果你不想备份,就直接写成 perl -p -i -e 或者更简单 perl -pie, 恩,pie这个单词不错
将每个文件中出现的数值都加一
perl -i.bak -pe ’s/(\d+)/ 1 + $1 /ge’ file1 file2 ….
将换行符\r\n替换成\n
perl -pie ’s/\r\n/\n/g’ file
同dos2unix命令。
将换行符\n替换成\r\n
perl -pie ’s/\n/\r\n/g’ file
同unix2dos命令。
取出文件的一部分
显示字段0-4和字段6,字段的分隔符是空格
perl -lane ‘print “@F[0..4] $F[6]“‘ file
很好很强大,同 awk ‘print $1, $2, $3, $4, $5, $7′。参数名称lane也很好记。
如果字段分隔符不是空格而是冒号,则用
perl -F: -lane ‘print “@F[0..4]\n”‘ /etc/passwd
显示START和END之间的部分
perl -ne ‘print if /^START$/ .. /^END$/’ file
恐怕这个操作只有sed才做得到了吧……
相反,不显示START和END之间的部分
perl -ne ‘print unless /^START$/ .. /^END$/’ file
显示开头50行:
perl -pe ‘exit if $. > 50′ file
同命令 head -n 50
不显示开头10行:
perl -ne ‘print unless 1 .. 10′ file
显示15行到17行:
perl -ne ‘print if 15 .. 17′ file
每行取前80个字符:
perl -lne ‘print substr($_, 0, 80) = “”‘ file
每行丢弃前10个字符:
perl -lne ‘print substr($_, 10) = “”‘ file
搜索
查找comment字符串:
perl -ne ‘print if /comment/’ duptext
这个就是普通的grep命令了。
查找不含comment字符串的行:
perl -ne ‘print unless /comment/’ duptext
反向的grep,即grep -v。
查找包含comment或apple的行:
perl -ne ‘print if /comment/ || /apple/’ duptext
相同的功能就要用到egrep了,语法比较复杂,我不会……
计算
计算字段4和倒数第二字段之和:
perl -lane ‘print $F[4] + $F[-2]‘
要是用awk,就得写成 awk ‘{i=NF-1;print $5+$i}’
排序和反转
文件按行排序:
perl -e ‘print sort <>’ file
相当于简单的sort命令。
文件按段落排序:
perl -00 -e ‘print sort <>’ file
多个文件按文件内容排序,并返回合并后的文件:
perl -0777 -e ‘print sort <>’ file1 file2
文件按行反转:
perl -e ‘print reverse <>’ file1
相应的命令有吗?有……不过挺偏,tac(cat的反转)
数值计算
10进制转16进制:
perl -ne ‘printf “%x\n”,$_’
10进制转8进制: perl -ne ‘printf “%o\n”,$_’
16进制转10进制:
perl -ne ‘print hex($_).”\n”‘
8进制转10进制:
perl -ne ‘print oct($_).”\n”‘
简易计算器。
perl -ne ‘print eval($_).”\n”‘
其他
启动交互式perl:
perl -de 1
查看包含路径的内容:
perl -le ‘print for @INC’
备注
与One-Liner相关的Perl命令行参数:
-0<数字>
(用 8进制表示)指定记录分隔符($/变量),默认为换行
-00
段落模式,即以连续换行为分隔符
-0777
禁用分隔符,即将整个文件作为一个记录
-a
自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F
指定-a的分隔符,可以使用正则表达式
-e
执行指定的脚本。
-i<扩展名>
原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l
对输入内容自动chomp,对输出内容自动添加换行
-n
自动循环,相当于 while(<>) { 脚本; }
-p
自动循环+自动输出,相当于 while(<>) { 脚本; print; }
转载于:https://www.cnblogs.com/air-of-code/p/5990436.html
Perl命令行常见用法及技巧相关推荐
- linux下perl命令行参数,Perl One-Liners | Perl命令行学习1 -e参数
注:本内容需要点的perl编程基础,最好是读过<perl语言入门>. 本系列是自己平常学习工作中的总结,每一个实例均为我为了讲解而设置的,自己试过的,如有错误,望能见谅 Perl 命令行参 ...
- perl 命令行备注
参考链接 Perl 常用命令行选项 unix 常用命令 perl 实现 sed awk tr nl perl 和sed,awk,tr,grep,nl等常用命令替换 sed task sed perl ...
- mysql命令行的一些小技巧
mysql命令行的一些小技巧 1.以html格式输出结果 使用mysql客户端的参数–html或者-T,则所有SQL的查询结果会自动生成为html的table代码 $ mysql -uroot --h ...
- ftp命令行登陆 用法指南
转载:ftp命令行登陆 用法指南 1. ftp open *.*.*.* 这时会提示输入用户名和密码,输入完即可登陆. 可以用 dir或者ls命令查看当前目录内容 可以用 ascii或者binary改 ...
- 好压(HaoZip)的命令行模式用法介绍-转载
转载自http://www.cnblogs.com/fetty/p/4859670.html 好压(HaoZip)的命令行模式用法介绍 好压压缩软件,又叫"2345好压",是一款国 ...
- Perl命令行应用介绍
作 者: Dave Cross 发 表:August 10, 2004 原 名: Perl Command-Line Options 原 文:http://www.perl.com/pub/a/200 ...
- dig命令的常见用法详解
CATALOG 什么是dig 一个查询的例子 常见用法 什么是dig dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具.它执行 DNS 搜索,显示从受请求的域名服务器返回的答复 ...
- Bash命令行历史用法【转】
原文:http://tech.idv2.com/2007/03/27/bash-history-summary/ 便总结一下bash命令行历史的用法: history: 命令查看以前用过的命令行列表. ...
- @ARGV:perl命令行参数
当perl脚本运行时,从命令行上传递给它的参数存储在内建数组@ARGV中,@ARGV是PERL默认用来接收参数的数组,可以有多个参数,$ARGV[0]是表示接收到的第一个参数,$ARGV[1]表示第二 ...
最新文章
- 切换目录命令 - cd
- String hashCode 方法为什么选择数字31作为乘子
- HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)
- 【设计模式系列】行为型之模板模式
- Flink : The object probably contains or references non-serializable fields.
- 如何用Python实现目录遍历
- LSTM+attention代码原理详解
- 用c语言编写清理c盘程序,C盘清理小程序制作
- IV值和WOE值的理解
- 【验证码识别】OpenCV挑战极验滑动拼图验证码
- Spring中AOP的实现原理
- 2021-2027全球及中国油田钻机行业研究及十四五规划分析报告
- 解析互联网广告术语 CPM、CPC、CPA、CPS、CPL、CPR 是什么意思
- SUCCEEDED 和 FAILED的作用和用法
- 11 种主要神经网络结构图解
- Linux配置定时任务
- PLSQL Developer13.0.4安装破解教程
- [2013百度软件研发笔试题] 求字符串中连续出现同样字符的最大值
- 用python计算整数各位数字之和
- 华为服务器命名规则及型号分类