PERL命令行
PERL命令行
perl命令行操作需要加上-e否则会寻找perl脚本文件,命令用单引号包围,双引号会被OS认为是变量
PERL命令行参数
-
-n参数
-n参数相当于创建while循环
while(<>) { commands; }
-
-p参数
-p参数创建while循环,下一步打印
while(<>) { command; } continue { print or die }
-
-i参数
直接对操作对象进行修改
perl特殊变量
Special variable | Meaning |
---|---|
$_ | 默认的输入和模式搜索空间 |
$. | 读取的最后一个文件柄的当前输入行号 |
$/ | 输入记录的分隔符,默认为换行。 |
$\ | 输出记录的分隔符,默认为换行。 |
$, | 打印输出字段分隔符 |
$‘’ | 连接字符串中插值的数组元素的分隔符 |
$0 | 正在执行的Perl脚本的文件名称 |
换行
-n和-p选项虽然仅有很小的差别,但是产生的结果会有很大的不同
I Do Not Love You Except Because I Love You :
I do not love you except because I love you;
I go from loving to not loving you,
From waiting to not waiting for you
My heart moves from cold to fire.
I love you only because it's you the one I love;
I hate you deeply, and hating you
Bend to you, and the measure of my changing love for you
Is that I do not see you but love you blindly.
Maybe January light will consume
My heart with its cruel
Ray, stealing my key to true calm.
In this part of the story I am the one who
Dies, the only one, and I will die of love because I love you,
Because I love you, Love, in fire and blood.
双倍行距
设定输出分隔符
perl -pe '$/ = "\n"' poem
当前读入行追加换行
perl -pe '$_ .= "\n"' poem
or
perl -ne 'print $_ .= "\n"' poem
空行外两倍行距
匹配文本开头存在的行
perl -pe '$_ .= "\n" if /./'
排除空行
perl -pe '$_ .= "\n" unless /^$/' poem
多倍行距
perl -pe '$_ .= "\n"x4 if /./' poem
移除空行
perl -ne 'print if /./' poem
or
perl -ne 'print unless /^$/' poem
文本单词间两倍间距
perl -pe 's/ / /g' poem
移除单词间的空格
perl -pe 's/ +//g' poem
编号
所有行进行编号
perl -pe '$_ = "$. $_"' poem
or
perl -ne 'print $. $_' poem
非空行编号空行不保留
perl -ne 'print "$. $_" if /./' poem
or
perl -ne 'print "$. $_" if /\S/' poem
or
perl -ne 'print "$. $_" unless /^$/' poem
上述命令执行的结果是文本原始的行数编号,所以不连续
perl -ne 'print ++$x." $_" if /./' poem
or
perl -ne 'print ++$x." $_" if /\S/' poem
or
perl -ne 'print ++$x." $_" unless /^$/' poem
非空行编号空行保留
perl -pe '$_ = ++$x." $_" if /./'
or
perl -pe '$_ = ++$x." $_" if /\S/'
or
perl -pe '$_ = ++$x." $_" unless /^$/'
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库