首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】一步一步学Linux——perl命令(264)

  • 23-11-18 13:41
  • 2070
  • 8185
blog.csdn.net

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 附录

01. 命令概述

perl命令是perl语言解释器,负责解释执行perl语言程序。

02. 命令格式

用法:perl [选项] [参数]
  • 1

03. 常用选项

-o 以八进制数形式指定输入记录的分隔符(也保存在perl中的特殊变量$/中)
-a 当和-n或者-p一起使用时启动自动拆分模式.这种模式可以拆分输入的行,并把它们放置在名为@F的专门数组中
-c 使perl检查脚本的语法,然后退出
-C 使perl能够在目标系统中使用原始的宽字符API.
-d 在perl调试程序下运行脚本
-e 使用命令行,
-F 如果使用了-a,该参数可以用来指定所拆分的模式
-h 打印出所有选项的汇总
-i 指出被<>结构处理的文本
-I 使perl为模块搜索目录
-l 添加行结束处理,当和-n与-p开关一起使用,这个开关能自动把$/从输入数据中删除,并把$\(输出记录分隔符)设置为octnum,这样打印语句就可以使用该分隔符了.
-m[-]module 在执行脚本前,把指定模块包含在脚本中
-n 让perl在脚本中试用while(<>)循环
-p 让perl把下面循环添加到脚本中:
-P perl编译之前,通过C预设处理程序来运行自己的脚本
-s 在命令行中允许要进行开关解析
-S 让perl试用PATH环境变量来搜索脚本
-T 强制打开错误检查
-u 在编译了脚本后,导致perl清楚内核
-U 允许perl进行不安全的操作,如删除目录等
-v  打印出perl的版本及包的级别
-V:name 打印出指定的配置变量的汇总
-w 打印出警告信息
-W 无论no warnings或$^W的状态是什么,都启动警告信息
-x directory 通知perl脚本嵌入到消息中,文本不会被处理,知道第一行代码以#!开头并包含了字符"perl"
-X 无论use warnings或$^W的状态是什么,都禁止警告信息
– 可选, 表示使用的这些开关的结束位置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

04. 参考示例

4.1 解析Perl程序

[deng@localhost tmp]$ perl test.sh
hello world
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3

4.2 其它用法

# perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c    #将所有C程序中的foo替换成bar,旧文件备份成.bak

# perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2 …    #将每个文件中出现的数值都加一

# perl -pie 's/\r\n/\n/g' file   #将换行符\r\n替换成\n

# perl -pie 's/\n/\r\n/g' file  #将换行符\n替换成\r\n

# perl -lane 'print "@F[0..4] $F[6]"' file   #显示字段0-4和字段6,字段的分隔符是空格

# perl -F: -lane 'print "@F[0..4]\n"' /etc/passwd     #字段分隔符不是空格而是冒号

# perl -ne 'print if /^START$/ .. /^END$/' file   #显示START和END之间的部分

# perl -ne 'print unless /^START$/ .. /^END$/' file   #不显示START和END之间的部分

# perl -pe 'exit if $. > 50′ file    #显示开头50行

# perl -ne 'print unless 1 .. 10′ file   #不显示开头10行

# perl -ne 'print if 15 .. 17′ file  #显示15行到17行

# perl -lne 'print substr($_, 0, 80) = ""' file  #每行取前80个字符

# perl -lne 'print substr($_, 10) = ""' file  #每行丢弃前10个字符

# perl -ne 'print if /comment/' duptext     #查找comment字符串

# perl -ne 'print unless /comment/' duptext    #查找不含comment字符串的行

# perl -ne 'print if /comment/ || /apple/' duptext    #查找包含comment或apple的行

# perl -lane 'print $F[4] + $F[-2]'    #计算字段4和倒数第二字段之和

# perl -e 'print sort <>' file   #文件按行排序

# perl -00 -e 'print sort <>' file   #文件按段落排序

# perl -0777 -e 'print sort <>' file1 file2   #多个文件按文件内容排序,并返回合并后的文件

# perl -e 'print reverse <>' file1      #文件按行反转

# perl -ne 'printf "%x\n",$_'     #10进制转16进制

# perl -ne 'printf "%o\n",$_'    #10进制转8进制

# perl -ne 'print hex($_)."\n"'   #16进制转10进制

# perl -ne 'print oct($_)."\n"'   #8进制转10进制

# perl -ne 'print eval($_)."\n"'   #简易计算器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/101426060"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top